| 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 6ff1983d7139c16be4b7604726a8c80db40dea7f..7d78d0b668009ef2c329048123734fcccc7c930e 100644
|
| --- a/ui/events/blink/input_handler_proxy.cc
|
| +++ b/ui/events/blink/input_handler_proxy.cc
|
| @@ -666,6 +666,24 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
|
| CancelCurrentFling();
|
|
|
| InputHandlerProxy::EventDisposition result = DROP_EVENT;
|
| +
|
| + if (wheel_event.dispatch_type == WebInputEvent::kEventNonBlocking) {
|
| + // The first wheel event in the sequence should be cancellable.
|
| + DCHECK(wheel_event.phase != WebMouseWheelEvent::kPhaseBegan);
|
| +
|
| + DCHECK(mouse_wheel_result_ != kEventDispositionUndefined);
|
| + result = static_cast<EventDisposition>(mouse_wheel_result_);
|
| +
|
| + if (wheel_event.phase == WebMouseWheelEvent::kPhaseEnded ||
|
| + wheel_event.phase == WebMouseWheelEvent::kPhaseCancelled ||
|
| + wheel_event.momentum_phase == WebMouseWheelEvent::kPhaseEnded ||
|
| + wheel_event.momentum_phase == WebMouseWheelEvent::kPhaseCancelled) {
|
| + mouse_wheel_result_ = kEventDispositionUndefined;
|
| + }
|
| +
|
| + return result;
|
| + }
|
| +
|
| cc::EventListenerProperties properties =
|
| input_handler_->GetEventListenerProperties(
|
| cc::EventListenerClass::kMouseWheel);
|
|
|