Index: ui/events/blink/input_handler_proxy.cc |
diff --git a/ui/events/blink/input_handler_proxy.cc b/ui/events/blink/input_handler_proxy.cc |
index cecf7df0c2f157963876234ebb086176ad7efd08..17de4c67db2aa0b16bd1d78a3964de682fd4db39 100644 |
--- a/ui/events/blink/input_handler_proxy.cc |
+++ b/ui/events/blink/input_handler_proxy.cc |
@@ -123,28 +123,34 @@ WebGestureEvent ObtainGestureScrollBegin(const WebGestureEvent& event) { |
} |
cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { |
+ cc::ScrollStateData scroll_state_data; |
switch (event.type) { |
case WebInputEvent::GestureScrollBegin: |
- return cc::ScrollState(0, 0, event.x, event.y, 0, 0, true, false, false); |
+ scroll_state_data.start_position_x = event.x; |
+ scroll_state_data.start_position_y = event.y; |
+ scroll_state_data.is_beginning = true; |
+ break; |
case WebInputEvent::GestureFlingStart: |
- return cc::ScrollState( |
- 0, 0, event.x, event.y, event.data.flingStart.velocityX, |
- event.data.flingStart.velocityX, true, true, false); |
+ scroll_state_data.velocity_x = event.data.flingStart.velocityX; |
+ scroll_state_data.velocity_y = event.data.flingStart.velocityY; |
+ scroll_state_data.is_in_inertial_phase = true; |
+ break; |
case WebInputEvent::GestureScrollUpdate: |
- return cc::ScrollState(-event.data.scrollUpdate.deltaX, |
- -event.data.scrollUpdate.deltaY, event.x, event.y, |
- event.data.scrollUpdate.velocityX, |
- event.data.scrollUpdate.velocityY, |
- event.data.scrollUpdate.inertial, false, false); |
+ scroll_state_data.delta_x = -event.data.scrollUpdate.deltaX; |
+ scroll_state_data.delta_y = -event.data.scrollUpdate.deltaY; |
+ scroll_state_data.velocity_x = event.data.scrollUpdate.velocityX; |
+ scroll_state_data.velocity_y = event.data.scrollUpdate.velocityY; |
+ scroll_state_data.is_in_inertial_phase = event.data.scrollUpdate.inertial; |
+ break; |
case WebInputEvent::GestureScrollEnd: |
- return cc::ScrollState(0, 0, event.x, event.y, 0, 0, false, false, true); |
case WebInputEvent::GestureFlingCancel: |
- return cc::ScrollState(0, 0, event.x, event.y, 0, 0, false, true, true); |
- |
+ scroll_state_data.is_ending = true; |
+ break; |
default: |
NOTREACHED(); |
- return cc::ScrollState(0, 0, 0, 0, 0, 0, false, false, false); |
+ break; |
} |
+ return cc::ScrollState(scroll_state_data); |
} |
void ReportInputEventLatencyUma(const WebInputEvent& event, |
@@ -464,8 +470,11 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( |
break; |
} |
} else { |
- cc::ScrollState scroll_state_begin(0, 0, wheel_event.x, wheel_event.y, 0, 0, |
- true, false, false); |
+ cc::ScrollStateData scroll_state_begin_data; |
+ scroll_state_begin_data.start_position_x = wheel_event.x; |
+ scroll_state_begin_data.start_position_y = wheel_event.y; |
+ scroll_state_begin_data.is_beginning = true; |
+ cc::ScrollState scroll_state_begin(scroll_state_begin_data); |
cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin( |
&scroll_state_begin, cc::InputHandler::WHEEL); |
@@ -478,16 +487,21 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( |
"InputHandlerProxy::handle_input wheel scroll", |
TRACE_EVENT_SCOPE_THREAD, "deltaX", |
scroll_delta.x(), "deltaY", scroll_delta.y()); |
- cc::ScrollState scroll_state_update(scroll_delta.x(), scroll_delta.y(), |
- wheel_event.x, wheel_event.y, 0, 0, |
- false, false, false); |
+ |
+ cc::ScrollStateData scroll_state_update_data; |
+ scroll_state_update_data.delta_x = scroll_delta.x(); |
+ scroll_state_update_data.delta_y = scroll_delta.y(); |
+ scroll_state_update_data.start_position_x = wheel_event.x; |
+ scroll_state_update_data.start_position_y = wheel_event.y; |
+ cc::ScrollState scroll_state_update(scroll_state_update_data); |
scroll_result = input_handler_->ScrollBy(&scroll_state_update); |
HandleOverscroll(gfx::Point(wheel_event.x, wheel_event.y), |
scroll_result); |
- cc::ScrollState scroll_state_end(0, 0, wheel_event.x, wheel_event.y, |
- 0, 0, false, false, true); |
+ cc::ScrollStateData scroll_state_end_data; |
+ scroll_state_end_data.is_ending = true; |
+ cc::ScrollState scroll_state_end(scroll_state_end_data); |
input_handler_->ScrollEnd(&scroll_state_end); |
result = scroll_result.did_scroll ? DID_HANDLE : DROP_EVENT; |
@@ -1026,9 +1040,9 @@ bool InputHandlerProxy::CancelCurrentFlingWithoutNotifyingClient() { |
bool had_fling_animation = !!fling_curve_; |
if (had_fling_animation && |
fling_parameters_.sourceDevice == blink::WebGestureDeviceTouchscreen) { |
- cc::ScrollState scroll_state(0, 0, fling_parameters_.point.x, |
- fling_parameters_.point.y, 0, 0, false, true, |
- true); |
+ cc::ScrollStateData scroll_state_data; |
+ scroll_state_data.is_ending = true; |
+ cc::ScrollState scroll_state(scroll_state_data); |
input_handler_->ScrollEnd(&scroll_state); |
TRACE_EVENT_ASYNC_END0( |
"input", |
@@ -1148,10 +1162,13 @@ bool InputHandlerProxy::scrollBy(const WebFloatSize& increment, |
break; |
case blink::WebGestureDeviceTouchscreen: { |
clipped_increment = ToClientScrollIncrement(clipped_increment); |
- cc::ScrollState scroll_state( |
- clipped_increment.width, clipped_increment.height, |
- fling_parameters_.point.x, fling_parameters_.point.y, |
- clipped_velocity.width, clipped_velocity.height, false, true, false); |
+ cc::ScrollStateData scroll_state_data; |
+ scroll_state_data.delta_x = clipped_increment.width; |
+ scroll_state_data.delta_y = clipped_increment.height; |
+ scroll_state_data.velocity_x = clipped_velocity.width; |
+ scroll_state_data.velocity_y = clipped_velocity.height; |
+ scroll_state_data.is_in_inertial_phase = true; |
+ cc::ScrollState scroll_state(scroll_state_data); |
cc::InputHandlerScrollResult scroll_result = |
input_handler_->ScrollBy(&scroll_state); |
HandleOverscroll(fling_parameters_.point, scroll_result); |