| Index: Source/web/WebViewImpl.cpp
|
| diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
|
| index 48c5120e1a3c90d399edb2a6627479408dac94e3..4a63ac74c3a854cf766c3f7e1bfa9d5bd60b924a 100644
|
| --- a/Source/web/WebViewImpl.cpp
|
| +++ b/Source/web/WebViewImpl.cpp
|
| @@ -666,6 +666,7 @@ bool WebViewImpl::scrollBy(const WebFloatSize& delta, const WebFloatSize& veloci
|
| syntheticGestureEvent.modifiers = m_flingModifier;
|
| syntheticGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
|
| syntheticGestureEvent.data.scrollUpdate.inertial = true;
|
| + syntheticGestureEvent.data.scrollUpdate.railsMode = m_railStateOnFlingStart;
|
|
|
| if (m_page && m_page->mainFrame() && m_page->mainFrame()->isLocalFrame() && m_page->deprecatedLocalMainFrame()->view())
|
| return handleGestureEvent(syntheticGestureEvent);
|
| @@ -689,6 +690,7 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event)
|
| m_client->cancelScheduledContentIntents();
|
| m_positionOnFlingStart = WebPoint(event.x, event.y);
|
| m_globalPositionOnFlingStart = WebPoint(event.globalX, event.globalY);
|
| + m_railStateOnFlingStart = event.data.flingStart.railsMode;
|
| m_flingModifier = event.modifiers;
|
| m_flingSourceDevice = event.sourceDevice;
|
| OwnPtr<WebGestureCurve> flingCurve = adoptPtr(Platform::current()->createFlingAnimationCurve(event.sourceDevice, WebFloatPoint(event.data.flingStart.velocityX, event.data.flingStart.velocityY), WebSize()));
|
| @@ -1895,7 +1897,8 @@ void WebViewImpl::beginFrame(const WebBeginFrameArgs& frameTime)
|
| PlatformGestureEvent endScrollEvent(PlatformEvent::GestureScrollEnd,
|
| m_positionOnFlingStart, m_globalPositionOnFlingStart,
|
| IntSize(), 0, false, false, false, false);
|
| - endScrollEvent.setScrollGestureData(0, 0, 0, 0, true, false);
|
| + endScrollEvent.setScrollGestureData(0, 0, 0, 0, true, false,
|
| + PlatformEvent::RailsModeFree);
|
|
|
| mainFrameImpl()->frame()->eventHandler().handleGestureScrollEnd(endScrollEvent);
|
| }
|
|
|