Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Unified Diff: ui/events/blink/input_handler_proxy.cc

Issue 1646663002: Refactor Scroll Customization to share cc::ScrollStateData with blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix linking. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/public/platform/WebScrollStateData.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « third_party/WebKit/public/platform/WebScrollStateData.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698