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; |
dtapuska
2017/06/20 20:53:14
So should we really be sending back undefined? ie;
sahel
2017/06/21 18:09:59
Done. I changed it to follow the blocking path if
|
+ } |
+ |
cc::EventListenerProperties properties = |
input_handler_->GetEventListenerProperties( |
cc::EventListenerClass::kMouseWheel); |