Chromium Code Reviews| Index: content/renderer/input/input_handler_proxy.cc |
| diff --git a/content/renderer/input/input_handler_proxy.cc b/content/renderer/input/input_handler_proxy.cc |
| index f714ef1f3d956678b8ba0b3cd744f85715a142a7..1fc8a1dad061db0318e274620840f53448747a03 100644 |
| --- a/content/renderer/input/input_handler_proxy.cc |
| +++ b/content/renderer/input/input_handler_proxy.cc |
| @@ -456,8 +456,18 @@ InputHandlerProxy::HandleGestureScrollUpdate( |
| return DID_NOT_HANDLE; |
| gfx::Point scroll_point(gesture_event.x, gesture_event.y); |
| - gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX, |
| - -gesture_event.data.scrollUpdate.deltaY); |
| + |
| + // TODO(tdresser): The rail information should be pushed down into |
| + // InputHandler. |
|
ccameron
2015/04/01 17:20:25
Oh, crap, I didn't do my TODO for this that I'd pr
tdresser
2015/04/01 17:22:45
Sounds good, thanks.
|
| + const float dx = gesture_event.data.scrollUpdate.deltaX; |
| + const float dy = gesture_event.data.scrollUpdate.deltaY; |
| + const WebInputEvent::RailsMode railsMode = |
| + gesture_event.data.scrollUpdate.railsMode; |
| + |
| + gfx::Vector2dF scroll_delta( |
| + railsMode != WebInputEvent::RailsModeVertical ? -dx : 0, |
| + railsMode != WebInputEvent::RailsModeHorizontal ? -dy : 0); |
| + |
| cc::InputHandlerScrollResult scroll_result = input_handler_->ScrollBy( |
| scroll_point, scroll_delta); |
| HandleOverscroll(scroll_point, scroll_result); |
| @@ -501,9 +511,21 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleGestureFlingStart( |
| if (gesture_event.sourceDevice == blink::WebGestureDeviceTouchpad) |
| input_handler_->ScrollEnd(); |
| - const float vx = gesture_event.data.flingStart.velocityX; |
| - const float vy = gesture_event.data.flingStart.velocityY; |
| - current_fling_velocity_ = gfx::Vector2dF(vx, vy); |
| + // TODO(tdresser): The rail information should be pushed down into |
| + // InputHandler. |
| + const WebInputEvent::RailsMode railsMode = |
| + gesture_event.data.flingStart.railsMode; |
| + |
| + float vx = railsMode != WebInputEvent::RailsModeVertical |
| + ? gesture_event.data.flingStart.velocityX |
| + : 0; |
| + float vy = railsMode != WebInputEvent::RailsModeHorizontal |
| + ? gesture_event.data.flingStart.velocityY |
| + : 0; |
| + |
| + current_fling_velocity_.set_x(vx); |
| + current_fling_velocity_.set_y(vy); |
| + |
| DCHECK(!current_fling_velocity_.IsZero()); |
| fling_curve_.reset(client_->CreateFlingAnimationCurve( |
| gesture_event.sourceDevice, |