| Index: third_party/WebKit/Source/core/layout/LayoutBlock.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
|
| index c1ca7b349a786a4a06a70ee3040e14aee94a76b5..ee0dff75c6af77844975bba480aea2f011692ee0 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
|
| @@ -1520,45 +1520,19 @@ bool LayoutBlock::nodeAtPoint(HitTestResult& result, const HitTestLocation& loca
|
|
|
| bool LayoutBlock::hitTestChildren(HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction)
|
| {
|
| - // TODO(pdr): We should also check for css clip in the !isSelfPaintingLayer
|
| - // case, similar to overflow clip below.
|
| - if (hasOverflowClip() && !hasSelfPaintingLayer()) {
|
| - if (!locationInContainer.intersects(overflowClipRect(accumulatedOffset, ExcludeOverlayScrollbarSizeForHitTesting)))
|
| - return false;
|
| - if (style()->hasBorderRadius()) {
|
| - LayoutRect borderRect = borderBoxRect();
|
| - borderRect.moveBy(accumulatedOffset);
|
| - if (!locationInContainer.intersects(style()->getRoundedInnerBorderFor(borderRect)))
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - // A control clip can also clip out child hit testing.
|
| - if (hasControlClip() && !locationInContainer.intersects(controlClipRect(accumulatedOffset)))
|
| - return false;
|
| -
|
| + ASSERT(!childrenInline());
|
| LayoutPoint scrolledOffset(hasOverflowClip() ? accumulatedOffset - scrolledContentOffset() : accumulatedOffset);
|
| - if (childrenInline() && !isTable()) {
|
| - if (m_lineBoxes.hitTest(LineLayoutBoxModel(this), result, locationInContainer, scrolledOffset, hitTestAction)) {
|
| + HitTestAction childHitTest = hitTestAction;
|
| + if (hitTestAction == HitTestChildBlockBackgrounds)
|
| + childHitTest = HitTestChildBlockBackground;
|
| + for (LayoutBox* child = lastChildBox(); child; child = child->previousSiblingBox()) {
|
| + LayoutPoint childPoint = flipForWritingModeForChild(child, scrolledOffset);
|
| + if (!child->hasSelfPaintingLayer() && !child->isFloating() && !child->isColumnSpanAll() && child->nodeAtPoint(result, locationInContainer, childPoint, childHitTest)) {
|
| updateHitTestResult(result, flipForWritingMode(toLayoutPoint(locationInContainer.point() - accumulatedOffset)));
|
| return true;
|
| }
|
| - } else {
|
| - HitTestAction childHitTest = hitTestAction;
|
| - if (hitTestAction == HitTestChildBlockBackgrounds)
|
| - childHitTest = HitTestChildBlockBackground;
|
| - for (LayoutBox* child = lastChildBox(); child; child = child->previousSiblingBox()) {
|
| - LayoutPoint childPoint = flipForWritingModeForChild(child, scrolledOffset);
|
| - if (!child->hasSelfPaintingLayer() && !child->isFloating() && !child->isColumnSpanAll() && child->nodeAtPoint(result, locationInContainer, childPoint, childHitTest)) {
|
| - updateHitTestResult(result, flipForWritingMode(toLayoutPoint(locationInContainer.point() - accumulatedOffset)));
|
| - return true;
|
| - }
|
| - }
|
| }
|
|
|
| - if (hitTestAction == HitTestFloat && hitTestFloats(result, locationInContainer, scrolledOffset))
|
| - return true;
|
| -
|
| return false;
|
| }
|
|
|
|
|