Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 94112877fa204de1f52ac4d9106c7a3aa6c1c58e..d9f19bf3d96c3f207698423369f045d5d3800665 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -1882,6 +1882,8 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont |
return this; |
} |
+ ASSERT(!result.isRectBasedTest() || request.listBased()); |
Rick Byers
2015/02/04 10:34:03
Asserts like this can probably move into HitTestRe
pdr.
2015/02/17 04:10:14
Done.
pdr.
2015/02/17 04:10:14
Done.
|
+ |
// Next we want to see if the mouse pos is inside the child RenderObjects of the layer. Check |
// every fragment in reverse order. |
if (isSelfPaintingLayer()) { |
@@ -1890,7 +1892,7 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont |
bool insideFragmentForegroundRect = false; |
if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestDescendants, insideFragmentForegroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
- if (result.isRectBasedTest()) |
+ if (request.listBased()) |
result.append(tempResult); |
else |
result = tempResult; |
@@ -1898,7 +1900,7 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont |
return this; |
// Foreground can depth-sort with descendant layers, so keep this as a candidate. |
candidateLayer = this; |
- } else if (insideFragmentForegroundRect && result.isRectBasedTest()) |
+ } else if (insideFragmentForegroundRect && request.listBased()) |
result.append(tempResult); |
} |
@@ -1920,13 +1922,13 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont |
bool insideFragmentBackgroundRect = false; |
if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestSelf, insideFragmentBackgroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
- if (result.isRectBasedTest()) |
+ if (request.listBased()) |
result.append(tempResult); |
else |
result = tempResult; |
return this; |
} |
- if (insideFragmentBackgroundRect && result.isRectBasedTest()) |
+ if (insideFragmentBackgroundRect && request.listBased()) |
result.append(tempResult); |
} |
@@ -2026,7 +2028,7 @@ bool RenderLayer::hitTestContents(const HitTestRequest& request, HitTestResult& |
if (!renderer()->hitTest(request, result, hitTestLocation, toLayoutPoint(layerBounds.location() - renderBoxLocation()), hitTestFilter)) { |
// It's wrong to set innerNode, but then claim that you didn't hit anything, unless it is |
// a rect-based test. |
- ASSERT(!result.innerNode() || (result.isRectBasedTest() && result.rectBasedTestResult().size())); |
+ ASSERT(!result.innerNode() || (request.listBased() && result.listBasedTestResult().size())); |
return false; |
} |
@@ -2067,14 +2069,15 @@ RenderLayer* RenderLayer::hitTestChildren(ChildrenIteration childrentoVisit, Ren |
else |
hitLayer = childLayer->hitTestLayer(rootLayer, this, request, tempResult, hitTestRect, hitTestLocation, false, transformState, zOffsetForDescendants); |
- // If it a rect-based test, we can safely append the temporary result since it might had hit |
+ // If it a list-based test, we can safely append the temporary result since it might had hit |
Rick Byers
2015/02/04 10:34:03
nit: s/it/it is/
pdr.
2015/02/17 04:10:14
Done.
|
// nodes but not necesserily had hitLayer set. |
- if (result.isRectBasedTest()) |
+ ASSERT(!result.isRectBasedTest() || request.listBased()); |
+ if (request.listBased()) |
result.append(tempResult); |
if (isHitCandidate(hitLayer, depthSortDescendants, zOffset, unflattenedTransformState)) { |
resultLayer = hitLayer; |
- if (!result.isRectBasedTest()) |
+ if (!request.listBased()) |
result = tempResult; |
if (!depthSortDescendants) |
break; |