| 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 a4100162e2c0adec240cd4968f1069fa0aaabbb6..3fc8faca1128c4c1c2503d0f46ea259d58f58d93 100644
|
| --- a/ui/events/blink/input_handler_proxy.cc
|
| +++ b/ui/events/blink/input_handler_proxy.cc
|
| @@ -140,6 +140,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;
|
| @@ -158,6 +164,7 @@ cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
|
| case WebInputEvent::GestureScrollEnd:
|
| case WebInputEvent::GestureFlingCancel:
|
| scroll_state_data.is_ending = true;
|
| + scroll_state_data.precedes_fling = event.data.scrollEnd.precedesFling;
|
| break;
|
| default:
|
| NOTREACHED();
|
| @@ -788,6 +795,7 @@ InputHandlerProxy::HandleGestureScrollUpdate(
|
|
|
| if (ShouldAnimate(gesture_event.data.scrollUpdate.deltaUnits !=
|
| blink::WebGestureEvent::ScrollUnits::Pixels)) {
|
| + DCHECK(!scroll_state.is_in_inertial_phase());
|
| base::TimeTicks event_time =
|
| base::TimeTicks() +
|
| base::TimeDelta::FromSecondsD(gesture_event.timeStampSeconds);
|
|
|