| 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..fb798a0f653b96e254a5b2625f5b69fca89807a8 100644
|
| --- a/content/renderer/input/input_handler_proxy.cc
|
| +++ b/content/renderer/input/input_handler_proxy.cc
|
| @@ -168,6 +168,22 @@ void ReportInputEventLatencyUma(const WebInputEvent& event,
|
| }
|
| }
|
|
|
| +cc::InputHandler::RailsMode ConvertRailsMode(
|
| + blink::WebInputEvent::RailsMode rails_mode) {
|
| + switch (rails_mode) {
|
| + case blink::WebInputEvent::RailsModeFree:
|
| + return cc::InputHandler::RAILS_MODE_FREE;
|
| + case blink::WebInputEvent::RailsModeHorizontal:
|
| + return cc::InputHandler::RAILS_MODE_HORIZONTAL;
|
| + case blink::WebInputEvent::RailsModeVertical:
|
| + return cc::InputHandler::RAILS_MODE_VERTICAL;
|
| + default:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
| + return cc::InputHandler::RAILS_MODE_FREE;
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -331,16 +347,9 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
|
| const WebMouseWheelEvent& wheel_event) {
|
| InputHandlerProxy::EventDisposition result = DID_NOT_HANDLE;
|
| cc::InputHandlerScrollResult scroll_result;
|
| -
|
| - // TODO(ccameron): The rail information should be pushed down into
|
| - // InputHandler.
|
| - gfx::Vector2dF scroll_delta(
|
| - wheel_event.railsMode != WebInputEvent::RailsModeVertical
|
| - ? -wheel_event.deltaX
|
| - : 0,
|
| - wheel_event.railsMode != WebInputEvent::RailsModeHorizontal
|
| - ? -wheel_event.deltaY
|
| - : 0);
|
| + const gfx::Vector2dF scroll_delta(-wheel_event.deltaX, -wheel_event.deltaY);
|
| + const cc::InputHandler::RailsMode rails_mode =
|
| + ConvertRailsMode(wheel_event.railsMode);
|
|
|
| if (wheel_event.scrollByPage) {
|
| // TODO(jamesr): We don't properly handle scroll by page in the compositor
|
| @@ -374,7 +383,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
|
| TRACE_EVENT_SCOPE_THREAD, "deltaX",
|
| scroll_delta.x(), "deltaY", scroll_delta.y());
|
| gfx::Point scroll_point(wheel_event.x, wheel_event.y);
|
| - scroll_result = input_handler_->ScrollBy(scroll_point, scroll_delta);
|
| + scroll_result =
|
| + input_handler_->ScrollBy(scroll_point, scroll_delta, rails_mode);
|
| HandleOverscroll(scroll_point, scroll_result);
|
| input_handler_->ScrollEnd();
|
| result = scroll_result.did_scroll ? DID_HANDLE : DROP_EVENT;
|
| @@ -459,7 +469,7 @@ InputHandlerProxy::HandleGestureScrollUpdate(
|
| gfx::Vector2dF scroll_delta(-gesture_event.data.scrollUpdate.deltaX,
|
| -gesture_event.data.scrollUpdate.deltaY);
|
| cc::InputHandlerScrollResult scroll_result = input_handler_->ScrollBy(
|
| - scroll_point, scroll_delta);
|
| + scroll_point, scroll_delta, cc::InputHandler::RAILS_MODE_FREE);
|
| HandleOverscroll(scroll_point, scroll_result);
|
| return scroll_result.did_scroll ? DID_HANDLE : DROP_EVENT;
|
| }
|
| @@ -935,8 +945,9 @@ bool InputHandlerProxy::scrollBy(const WebFloatSize& increment,
|
| break;
|
| case blink::WebGestureDeviceTouchscreen: {
|
| clipped_increment = ToClientScrollIncrement(clipped_increment);
|
| - cc::InputHandlerScrollResult scroll_result = input_handler_->ScrollBy(
|
| - fling_parameters_.point, clipped_increment);
|
| + cc::InputHandlerScrollResult scroll_result =
|
| + input_handler_->ScrollBy(fling_parameters_.point, clipped_increment,
|
| + cc::InputHandler::RAILS_MODE_FREE);
|
| HandleOverscroll(fling_parameters_.point, scroll_result);
|
| did_scroll = scroll_result.did_scroll;
|
| } break;
|
|
|