Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1091)

Unified Diff: Source/core/rendering/RenderBlock.cpp

Issue 17471008: Rework compositor touch hit testing (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Various fixes and test additions Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderBlock.cpp
diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp
index 099addac65bfce31beee43509f747b5abd9a2d7c..8f1ce8f832da72ce236efa768240673bae9aef75 100644
--- a/Source/core/rendering/RenderBlock.cpp
+++ b/Source/core/rendering/RenderBlock.cpp
@@ -7219,6 +7219,22 @@ void RenderBlock::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& a
inlineElementContinuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + inlineElementContinuation()->containingBlock()->location() - location()), paintContainer);
}
+void RenderBlock::computeOwnHitTestRects(Vector<IntRect>& rects, const LayoutPoint& layerOffset) const
+{
+ RenderBox::computeOwnHitTestRects(rects, layerOffset);
+
+ if (hasHorizontalLayoutOverflow() || hasVerticalLayoutOverflow()) {
+ for (RootInlineBox* curr = firstRootBox(); curr; curr = curr->nextRootBox()) {
+ LayoutUnit top = max<LayoutUnit>(curr->lineTop(), curr->top());
+ LayoutUnit bottom = min<LayoutUnit>(curr->lineBottom(), curr->top() + curr->height());
+ IntRect rect(pixelSnappedIntRect(layerOffset.x() + curr->x(), layerOffset.y() + top, curr->width(), bottom - top));
+ // It's common for this rect to be entirely contained in our box, so exclude that simple case.
+ if (!rect.isEmpty() && (rects.isEmpty() || !rects[0].contains(rect)))
+ rects.append(rect);
+ }
+ }
+}
+
RenderBox* RenderBlock::createAnonymousBoxWithSameTypeAs(const RenderObject* parent) const
{
if (isAnonymousColumnsBlock())

Powered by Google App Engine
This is Rietveld 408576698