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

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: Fix lifetime issue with Internals::m_currentTouchEventRects 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 f535ada36d9386c241ee0a911d7a57fa61946066..9b9b68aeeb3658cc758d8bc98d7285e5385a0edb 100644
--- a/Source/core/rendering/RenderBlock.cpp
+++ b/Source/core/rendering/RenderBlock.cpp
@@ -7340,6 +7340,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