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

Unified Diff: third_party/WebKit/Source/core/layout/LayoutInline.cpp

Issue 1516683002: Introducing LayoutObject::mapToVisibleRectInContainerSpace (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix flipping logic Created 5 years 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: 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 58f6568fd484ab97715f23e4fbfa2cdac89ef240..bb61b86fa20a4e81a69282ecd76125889d3b1ec5 100644
--- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
@@ -1047,7 +1047,7 @@ LayoutRect LayoutInline::clippedOverflowRect(const LayoutBoxModelObject* paintIn
if (overflowRect.isEmpty())
return overflowRect;
- mapRectToPaintInvalidationBacking(paintInvalidationContainer, overflowRect, paintInvalidationState);
+ mapToVisibleRectInContainerSpace(paintInvalidationContainer, overflowRect, paintInvalidationState);
return overflowRect;
}
@@ -1069,7 +1069,7 @@ LayoutRect LayoutInline::visualOverflowRect() const
return overflowRect;
}
-void LayoutInline::mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInvalidationContainer, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
+void LayoutInline::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* paintInvalidationContainer, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
{
if (paintInvalidationState && paintInvalidationState->canMapToContainer(paintInvalidationContainer)) {
if (style()->hasInFlowPosition() && layer())
@@ -1103,7 +1103,10 @@ void LayoutInline::mapRectToPaintInvalidationBacking(const LayoutBoxModelObject*
rect.setLocation(topLeft);
if (o->hasOverflowClip()) {
LayoutBox* containerBox = toLayoutBox(o);
- containerBox->applyCachedClipAndScrollOffsetForPaintInvalidation(rect);
+ if (o == paintInvalidationContainer)
+ containerBox->applyCachedScrollOffsetForPaintInvalidation(rect);
+ else
+ containerBox->applyCachedClipAndScrollOffsetForPaintInvalidation(rect);
if (rect.isEmpty())
return;
}
@@ -1115,7 +1118,7 @@ void LayoutInline::mapRectToPaintInvalidationBacking(const LayoutBoxModelObject*
return;
}
- o->mapRectToPaintInvalidationBacking(paintInvalidationContainer, rect, paintInvalidationState);
+ o->mapToVisibleRectInContainerSpace(paintInvalidationContainer, rect, paintInvalidationState);
}
LayoutSize LayoutInline::offsetFromContainer(const LayoutObject* container, const LayoutPoint& point, bool* offsetDependsOnPoint) const
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutInline.h ('k') | third_party/WebKit/Source/core/layout/LayoutListMarker.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698