Index: content/renderer/input/main_thread_event_queue.cc |
diff --git a/content/renderer/input/main_thread_event_queue.cc b/content/renderer/input/main_thread_event_queue.cc |
index 64eb81571ad0079f9604a0811fe5f4889425a1bc..42f3cc2a460aef6c5021b009f755d1b61e895537 100644 |
--- a/content/renderer/input/main_thread_event_queue.cc |
+++ b/content/renderer/input/main_thread_event_queue.cc |
@@ -68,7 +68,6 @@ MainThreadEventQueue::MainThreadEventQueue( |
blink::scheduler::RendererScheduler* renderer_scheduler) |
: routing_id_(routing_id), |
client_(client), |
- is_flinging_(false), |
last_touch_start_forced_nonblocking_due_to_fling_(false), |
enable_fling_passive_listener_flag_(base::FeatureList::IsEnabled( |
features::kPassiveEventListenersDueToFling)), |
@@ -89,7 +88,8 @@ bool MainThreadEventQueue::HandleEvent( |
DCHECK(original_dispatch_type == DISPATCH_TYPE_BLOCKING || |
original_dispatch_type == DISPATCH_TYPE_NON_BLOCKING); |
DCHECK(ack_result == INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING || |
- ack_result == INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ ack_result == INPUT_EVENT_ACK_STATE_NOT_CONSUMED || |
+ ack_result == INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING_DUE_TO_FLING); |
bool non_blocking = original_dispatch_type == DISPATCH_TYPE_NON_BLOCKING || |
ack_result == INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING; |
@@ -99,7 +99,7 @@ bool MainThreadEventQueue::HandleEvent( |
if (is_touch) { |
blink::WebTouchEvent* touch_event = |
static_cast<blink::WebTouchEvent*>(event.get()); |
- touch_event->dispatchedDuringFling = is_flinging_; |
+ |
// Adjust the |dispatchType| on the event since the compositor |
// determined all event listeners are passive. |
if (non_blocking) { |
@@ -114,7 +114,8 @@ bool MainThreadEventQueue::HandleEvent( |
touch_event->dispatchType == blink::WebInputEvent::Blocking) { |
// If the touch start is forced to be passive due to fling, its following |
// touch move should also be passive. |
- if (is_flinging_ || last_touch_start_forced_nonblocking_due_to_fling_) { |
+ if (ack_result == INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING_DUE_TO_FLING || |
+ last_touch_start_forced_nonblocking_due_to_fling_) { |
touch_event->dispatchType = |
blink::WebInputEvent::ListenersForcedNonBlockingDueToFling; |
non_blocking = true; |