Chromium Code Reviews| 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 |