Index: content/renderer/input/input_event_filter.cc |
diff --git a/content/renderer/input/input_event_filter.cc b/content/renderer/input/input_event_filter.cc |
index e62ee2cf941c784c96db901db93940ae26ccb648..d1aa6e267bad173d6774a8a2cc15fdc033895c91 100644 |
--- a/content/renderer/input/input_event_filter.cc |
+++ b/content/renderer/input/input_event_filter.cc |
@@ -59,6 +59,15 @@ void InputEventFilter::SetBoundHandler(const Handler& handler) { |
handler_ = handler; |
} |
+void InputEventFilter::SetIsFlingInMainThreadEventQueue(int routing_id, |
+ bool is_flinging) { |
+ RouteQueueMap::iterator iter = route_queues_.find(routing_id); |
+ if (iter == route_queues_.end() || !iter->second) |
+ return; |
+ |
+ iter->second->set_is_flinging(is_flinging); |
+} |
+ |
void InputEventFilter::DidAddInputHandler(int routing_id) { |
base::AutoLock locked(routes_lock_); |
routes_.insert(routing_id); |
@@ -82,7 +91,12 @@ void InputEventFilter::DidOverscroll(int routing_id, |
new InputHostMsg_DidOverscroll(routing_id, params))); |
} |
+void InputEventFilter::DidStartFlinging(int routing_id) { |
+ SetIsFlingInMainThreadEventQueue(routing_id, true); |
+} |
+ |
void InputEventFilter::DidStopFlinging(int routing_id) { |
+ SetIsFlingInMainThreadEventQueue(routing_id, false); |
SendMessage(base::WrapUnique(new InputHostMsg_DidStopFlinging(routing_id))); |
} |