| 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 d5748a61a533ed93610300bda459836bfcd96972..10248a0a7e4094f1f79261c24cf88a3be58e5bd5 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| @@ -85,6 +85,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;
|
| @@ -1622,25 +1628,17 @@ LayoutRect PaintLayerScrollableArea::scrollIntoView(
|
| ScrollOffset oldScrollOffset = getScrollOffset();
|
| 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 = getScrollOffset() - 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) {
|
|
|