Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| index 1c356515a000fbe6f1ef14f2e71e5212e912f078..005e7121f129c27e30771e78c474ee5ae79bdaf7 100644 |
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| @@ -1416,13 +1416,13 @@ LayoutRect PaintLayerScrollableArea::scrollIntoView(const LayoutRect& rect, cons |
| DoublePoint clampedScrollPosition = clampScrollPosition(scrollPositionDouble() + roundedIntSize(r.location())); |
| if (clampedScrollPosition == scrollPositionDouble()) |
| - return rect; |
| + return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(intersection(layerBounds, localExposeRect))), UseTransforms).boundingBox()); |
|
bokan
2016/08/24 18:02:18
Taking the intersection now means we might end up
|
| DoubleSize oldScrollOffset = adjustedScrollOffset(); |
| scrollToPosition(clampedScrollPosition, ScrollOffsetUnclamped, ScrollBehaviorInstant, scrollType); |
| DoubleSize scrollOffsetDifference = adjustedScrollOffset() - oldScrollOffset; |
| localExposeRect.move(-LayoutSize(scrollOffsetDifference)); |
| - return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(localExposeRect)), UseTransforms).boundingBox()); |
| + return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(intersection(layerBounds, localExposeRect))), UseTransforms).boundingBox()); |
| } |
| void PaintLayerScrollableArea::updateScrollableAreaSet(bool hasOverflow) |