| 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 443b303bad88770b3c764c988a469f89b4e338aa..d5e49faf3a364b5d69725a3c99c628dbf846ff64 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| @@ -86,6 +86,12 @@
|
|
|
| namespace blink {
|
|
|
| +static LayoutRect localToAbsolute(LayoutBox& offset, LayoutRect rect) {
|
| + return LayoutRect(
|
| + offset.localToAbsoluteQuad(FloatQuad(FloatRect(rect)), UseTransforms)
|
| + .boundingBox());
|
| +}
|
| +
|
| PaintLayerScrollableAreaRareData::PaintLayerScrollableAreaRareData() {}
|
|
|
| const int ResizerControlExpandRatioForTouch = 2;
|
| @@ -1606,25 +1612,17 @@ LayoutRect PaintLayerScrollableArea::scrollIntoView(
|
| ScrollOffset oldScrollOffset = scrollOffset();
|
| ScrollOffset newScrollOffset(clampScrollOffset(roundedIntSize(
|
| toScrollOffset(FloatPoint(r.location()) + oldScrollOffset))));
|
| -
|
| - if (newScrollOffset == oldScrollOffset) {
|
| - return LayoutRect(
|
| - box()
|
| - .localToAbsoluteQuad(FloatQuad(FloatRect(intersection(
|
| - layerBounds, localExposeRect))),
|
| - UseTransforms)
|
| - .boundingBox());
|
| - }
|
| -
|
| setScrollOffset(newScrollOffset, scrollType, ScrollBehaviorInstant);
|
| ScrollOffset scrollOffsetDifference = scrollOffset() - oldScrollOffset;
|
| localExposeRect.move(-LayoutSize(scrollOffsetDifference));
|
| - return LayoutRect(
|
| - box()
|
| - .localToAbsoluteQuad(
|
| - FloatQuad(FloatRect(intersection(layerBounds, localExposeRect))),
|
| - UseTransforms)
|
| - .boundingBox());
|
| +
|
| + LayoutRect intersect =
|
| + localToAbsolute(box(), intersection(layerBounds, localExposeRect));
|
| + if (intersect.isEmpty() && !layerBounds.isEmpty() &&
|
| + !localExposeRect.isEmpty()) {
|
| + return localToAbsolute(box(), localExposeRect);
|
| + }
|
| + return intersect;
|
| }
|
|
|
| void PaintLayerScrollableArea::updateScrollableAreaSet(bool hasOverflow) {
|
|
|