| 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 18baa4cf33d4dd8cbcc16699b89b28e4d6451d49..6708f1669684dca330264a074e5608a7d7ead6c1 100644
|
| --- a/ui/events/blink/input_handler_proxy.cc
|
| +++ b/ui/events/blink/input_handler_proxy.cc
|
| @@ -133,6 +133,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;
|
| @@ -151,6 +157,8 @@ cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
|
| case WebInputEvent::GestureScrollEnd:
|
| case WebInputEvent::GestureFlingCancel:
|
| scroll_state_data.is_ending = true;
|
| + scroll_state_data.may_precede_fling =
|
| + event.data.scrollEnd.flingMightHappenNext;
|
| break;
|
| default:
|
| NOTREACHED();
|
| @@ -688,6 +696,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);
|
|
|