Index: third_party/WebKit/Source/core/layout/LayoutInline.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
index 7ba75d8a781b2e2d97b46ee7965b49dc76bbe752..986a4c262c605924cdc84bfc6b19cc41ae68d782 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
@@ -1059,7 +1059,7 @@ LayoutRect LayoutInline::clippedOverflowRect(const LayoutBoxModelObject* paintIn |
if (overflowRect.isEmpty()) |
return overflowRect; |
- mapToVisibleRectInAncestorSpace(paintInvalidationContainer, overflowRect, paintInvalidationState); |
+ mapToVisibleRectInAncestorSpace(paintInvalidationContainer, overflowRect, paintInvalidationState, false); |
return overflowRect; |
} |
@@ -1081,20 +1081,18 @@ LayoutRect LayoutInline::visualOverflowRect() const |
return overflowRect; |
} |
-void LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const |
+bool LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState, bool edgeInclusive) const |
eae
2016/03/22 00:13:50
It's unclear to me why these method would need to
szager1
2016/03/22 00:55:48
mapToVisibleRectInAncestorSpace is used by Interse
|
{ |
- if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor)) { |
- paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect); |
- return; |
- } |
+ if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor)) |
+ return paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect, edgeInclusive); |
if (ancestor == this) |
- return; |
+ return true; |
bool ancestorSkipped; |
LayoutObject* container = this->container(ancestor, &ancestorSkipped); |
if (!container) |
- return; |
+ return true; |
LayoutPoint topLeft = rect.location(); |
@@ -1112,20 +1110,18 @@ void LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* a |
if (container->hasOverflowClip()) { |
LayoutBox* containerBox = toLayoutBox(container); |
containerBox->mapScrollingContentsRectToBoxSpace(rect); |
- if (container != ancestor) |
- containerBox->applyOverflowClip(rect); |
- if (rect.isEmpty()) |
- return; |
+ if (container != ancestor && !containerBox->applyOverflowClip(rect, edgeInclusive)) |
+ return false; |
} |
if (ancestorSkipped) { |
// If the paintInvalidationContainer is below o, then we need to map the rect into paintInvalidationContainer's coordinates. |
LayoutSize containerOffset = ancestor->offsetFromAncestorContainer(container); |
rect.move(-containerOffset); |
- return; |
+ return true; |
} |
- container->mapToVisibleRectInAncestorSpace(ancestor, rect, paintInvalidationState); |
+ return container->mapToVisibleRectInAncestorSpace(ancestor, rect, paintInvalidationState, edgeInclusive); |
} |
LayoutSize LayoutInline::offsetFromContainer(const LayoutObject* container) const |