Index: Source/core/page/EventHandler.cpp |
diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp |
index 7a6b2740d320eb8558180654e6aa6c0a02c0ce8d..e3e2df14328dadcccf1ca5f175c85f18700f2380 100644 |
--- a/Source/core/page/EventHandler.cpp |
+++ b/Source/core/page/EventHandler.cpp |
@@ -2569,8 +2569,12 @@ bool EventHandler::handleGestureScrollBegin(const PlatformGestureEvent& gestureE |
bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gestureEvent) |
{ |
ASSERT(gestureEvent.type() == PlatformEvent::GestureScrollUpdate); |
- |
- FloatSize delta(gestureEvent.deltaX(), gestureEvent.deltaY()); |
+ bool ignoreX = gestureEvent.railsMode() == PlatformEvent::RailsModeVertical; |
+ bool ignoreY = gestureEvent.railsMode() == PlatformEvent::RailsModeHorizontal; |
+ FloatSize delta(ignoreX ? 0 : gestureEvent.deltaX(), |
+ ignoreY ? 0 : gestureEvent.deltaY()); |
+ FloatSize velocity(ignoreX ? 0 : gestureEvent.velocityX(), |
+ ignoreY ? 0 : gestureEvent.velocityY()); |
if (delta.isZero()) |
return false; |
@@ -2601,8 +2605,8 @@ bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture |
bool scrolled = false; |
if (RuntimeEnabledFeatures::scrollCustomizationEnabled()) { |
RefPtrWillBeRawPtr<ScrollState> scrollState = ScrollState::create( |
- gestureEvent.deltaX(), gestureEvent.deltaY(), |
- 0, gestureEvent.velocityX(), gestureEvent.velocityY(), |
+ delta.width(), delta.height(), |
+ 0, velocity.width(), velocity.height(), |
gestureEvent.inertial(), /* isBeginning */ |
false, /* isEnding */ false, /* fromUserInput */ true, |
!gestureEvent.preventPropagation(), m_deltaConsumedForScrollSequence); |