| Index: Source/core/frame/PinchViewport.cpp
|
| diff --git a/Source/core/frame/PinchViewport.cpp b/Source/core/frame/PinchViewport.cpp
|
| index 4b20bc08d9ebbdac6c12b02cd6552e09909130d8..4bf57b5f645b9af7b020a791c6e63a6f6956ec30 100644
|
| --- a/Source/core/frame/PinchViewport.cpp
|
| +++ b/Source/core/frame/PinchViewport.cpp
|
| @@ -239,11 +239,14 @@ bool PinchViewport::magnifyScaleAroundAnchor(float magnifyDelta, const FloatPoin
|
|
|
| // First try to use the anchor's delta to scroll the FrameView.
|
| FloatSize anchorDeltaUnusedByScroll = anchorDelta;
|
| - FrameView* view = mainFrame()->view();
|
| - DoublePoint oldPosition = view->scrollPositionDouble();
|
| - view->scrollBy(DoubleSize(anchorDelta.width(), anchorDelta.height()), UserScroll);
|
| - DoublePoint newPosition = view->scrollPositionDouble();
|
| - anchorDeltaUnusedByScroll = anchorDelta - toFloatSize(newPosition - oldPosition);
|
| +
|
| + if (!frameHost().settings().invertViewportScrollOrder()) {
|
| + FrameView* view = mainFrame()->view();
|
| + DoublePoint oldPosition = view->scrollPositionDouble();
|
| + view->scrollBy(DoubleSize(anchorDelta.width(), anchorDelta.height()), UserScroll);
|
| + DoublePoint newPosition = view->scrollPositionDouble();
|
| + anchorDeltaUnusedByScroll -= toFloatSize(newPosition - oldPosition);
|
| + }
|
|
|
| // Manually bubble any remaining anchor delta up to the pinch viewport.
|
| FloatPoint newLocation(location() + anchorDeltaUnusedByScroll);
|
|
|