| 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 1d4a119420bbfc7103437d70a83da022085c87af..377f6bddcbf73ce8b50cd054d5c9dc40524408dc 100644
|
| --- a/ui/events/blink/input_handler_proxy.cc
|
| +++ b/ui/events/blink/input_handler_proxy.cc
|
| @@ -132,6 +132,12 @@ cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
|
| scroll_state_data.position_x = event.x;
|
| scroll_state_data.position_y = event.y;
|
| scroll_state_data.is_beginning = true;
|
| + // On Mac, a GestureScrollBegin in the inertial phase indicates a fling
|
| + // start.
|
| + if (event.data.scrollBegin.inertialPhase ==
|
| + WebGestureEvent::MomentumPhase) {
|
| + scroll_state_data.is_in_inertial_phase = true;
|
| + }
|
| break;
|
| case WebInputEvent::GestureFlingStart:
|
| scroll_state_data.velocity_x = event.data.flingStart.velocityX;
|
| @@ -490,27 +496,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::ScrollByMouseWheel(
|
| blink::WebGestureDeviceTouchpad,
|
| cc::MainThreadScrollingReason::kPageBasedScrolling);
|
|
|
| - } else if (ShouldAnimate(wheel_event.hasPreciseScrollingDeltas)) {
|
| - cc::InputHandler::ScrollStatus scroll_status =
|
| - input_handler_->ScrollAnimated(gfx::Point(wheel_event.x, wheel_event.y),
|
| - scroll_delta);
|
| -
|
| - RecordMainThreadScrollingReasons(
|
| - blink::WebGestureDeviceTouchpad,
|
| - scroll_status.main_thread_scrolling_reasons);
|
| -
|
| - switch (scroll_status.thread) {
|
| - case cc::InputHandler::SCROLL_ON_IMPL_THREAD:
|
| - result = DID_HANDLE;
|
| - break;
|
| - case cc::InputHandler::SCROLL_IGNORED:
|
| - result = DROP_EVENT;
|
| - break;
|
| - default:
|
| - result = DID_NOT_HANDLE;
|
| - break;
|
| - }
|
| } else {
|
| + DCHECK(!ShouldAnimate(wheel_event.hasPreciseScrollingDeltas));
|
| cc::ScrollStateData scroll_state_begin_data;
|
| scroll_state_begin_data.position_x = wheel_event.x;
|
| scroll_state_begin_data.position_y = wheel_event.y;
|
| @@ -639,6 +626,7 @@ InputHandlerProxy::HandleGestureScrollUpdate(
|
|
|
| if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits !=
|
| blink::WebGestureEvent::ScrollUnits::Pixels)) {
|
| + DCHECK(!scroll_state.is_in_inertial_phase());
|
| switch (input_handler_->ScrollAnimated(scroll_point, scroll_delta).thread) {
|
| case cc::InputHandler::SCROLL_ON_IMPL_THREAD:
|
| return DID_HANDLE;
|
|
|