Index: content/browser/renderer_host/input/input_router_impl.cc |
diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc |
index 54bf892014c80b6884e624cdcdaac312c0817e46..d6fcb1c4f8be948d350401fd1e234e4bea707931 100644 |
--- a/content/browser/renderer_host/input/input_router_impl.cc |
+++ b/content/browser/renderer_host/input/input_router_impl.cc |
@@ -88,11 +88,6 @@ InputRouterImpl::~InputRouterImpl() { |
STLDeleteElements(&pending_select_messages_); |
} |
-void InputRouterImpl::Flush() { |
- flush_requested_ = true; |
- SignalFlushedIfNecessary(); |
-} |
- |
bool InputRouterImpl::SendInput(scoped_ptr<IPC::Message> message) { |
DCHECK(IPC_MESSAGE_ID_CLASS(message->type()) == InputMsgStart); |
switch (message->type()) { |
@@ -163,8 +158,6 @@ void InputRouterImpl::SendKeyboardEvent(const NativeWebKeyboardEvent& key_event, |
key_queue_.push_back(key_event); |
LOCAL_HISTOGRAM_COUNTS_100("Renderer.KeyboardQueueSize", key_queue_.size()); |
- gesture_event_queue_.FlingHasBeenHalted(); |
- |
// Only forward the non-native portions of our event. |
FilterAndSendWebInputEvent(key_event, latency_info, is_keyboard_shortcut); |
} |
@@ -244,6 +237,22 @@ void InputRouterImpl::OnViewUpdated(int view_flags) { |
UpdateTouchAckTimeoutEnabled(); |
} |
+void InputRouterImpl::RequestNotificationWhenFlushed() { |
+ flush_requested_ = true; |
+ SignalFlushedIfNecessary(); |
+} |
+ |
+bool InputRouterImpl::HasPendingEvents() const { |
+ return !touch_event_queue_.empty() || |
+ !gesture_event_queue_.empty() || |
+ gesture_event_queue_.active_fling_count() || |
+ !key_queue_.empty() || |
+ mouse_move_pending_ || |
+ mouse_wheel_pending_ || |
+ select_message_pending_ || |
+ move_caret_pending_; |
+} |
+ |
bool InputRouterImpl::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(InputRouterImpl, message) |
@@ -257,6 +266,7 @@ bool InputRouterImpl::OnMessageReceived(const IPC::Message& message) { |
OnHasTouchEventHandlers) |
IPC_MESSAGE_HANDLER(InputHostMsg_SetTouchAction, |
OnSetTouchAction) |
+ IPC_MESSAGE_HANDLER(InputHostMsg_DidStopFlinging, OnDidStopFlinging) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -485,6 +495,12 @@ void InputRouterImpl::OnSetTouchAction(TouchAction touch_action) { |
UpdateTouchAckTimeoutEnabled(); |
} |
+void InputRouterImpl::OnDidStopFlinging() { |
+ gesture_event_queue_.DidStopFlinging(); |
+ SignalFlushedIfNecessary(); |
+ client_->DidStopFlinging(); |
+} |
+ |
void InputRouterImpl::ProcessInputEventAck( |
WebInputEvent::Type event_type, |
InputEventAckState ack_result, |
@@ -626,14 +642,4 @@ void InputRouterImpl::SignalFlushedIfNecessary() { |
client_->DidFlush(); |
} |
-bool InputRouterImpl::HasPendingEvents() const { |
- return !touch_event_queue_.empty() || |
- !gesture_event_queue_.empty() || |
- !key_queue_.empty() || |
- mouse_move_pending_ || |
- mouse_wheel_pending_ || |
- select_message_pending_ || |
- move_caret_pending_; |
-} |
- |
} // namespace content |