Index: content/browser/renderer_host/input/immediate_input_router.h |
diff --git a/content/browser/renderer_host/input/immediate_input_router.h b/content/browser/renderer_host/input/immediate_input_router.h |
index 0c6a71a6d7cdd97e5d7e185db12536f974a9a040..33254a028ae898e599fcffc7620a067940215a01 100644 |
--- a/content/browser/renderer_host/input/immediate_input_router.h |
+++ b/content/browser/renderer_host/input/immediate_input_router.h |
@@ -10,7 +10,8 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/time/time.h" |
-#include "content/browser/renderer_host/input/gesture_event_filter.h" |
+#include "content/browser/renderer_host/input/fling/flinger.h" |
+#include "content/browser/renderer_host/input/gesture_event_filter_client.h" |
#include "content/browser/renderer_host/input/input_router.h" |
#include "content/browser/renderer_host/input/touch_event_queue.h" |
#include "content/browser/renderer_host/input/touchpad_tap_suppression_controller.h" |
@@ -25,7 +26,7 @@ struct LatencyInfo; |
} |
namespace content { |
- |
+class BaseGestureEventFilter; |
class InputAckHandler; |
class InputRouterClient; |
class OverscrollController; |
@@ -37,7 +38,8 @@ class CONTENT_EXPORT ImmediateInputRouter |
: public NON_EXPORTED_BASE(InputRouter), |
public NON_EXPORTED_BASE(GestureEventFilterClient), |
public NON_EXPORTED_BASE(TouchEventQueueClient), |
- public NON_EXPORTED_BASE(TouchpadTapSuppressionControllerClient) { |
+ public NON_EXPORTED_BASE(TouchpadTapSuppressionControllerClient), |
+ public NON_EXPORTED_BASE(FlingHelper) { |
public: |
ImmediateInputRouter(IPC::Sender* sender, |
InputRouterClient* client, |
@@ -86,6 +88,11 @@ private: |
virtual void OnGestureEventAck(const GestureEventWithLatencyInfo& event, |
InputEventAckState ack_result) OVERRIDE; |
+ // FlingHelper |
+ virtual void SendEventForFling(const blink::WebInputEvent& event) OVERRIDE; |
+ virtual void FlingFinished( |
+ blink::WebGestureEvent::SourceDevice source) OVERRIDE; |
+ |
bool SendMoveCaret(scoped_ptr<IPC::Message> message); |
bool SendSelectRange(scoped_ptr<IPC::Message> message); |
bool Send(IPC::Message* message); |
@@ -176,6 +183,7 @@ private: |
int routing_id() const { return routing_id_; } |
+ BaseGestureEventFilter* gesture_event_filter(); |
IPC::Sender* sender_; |
InputRouterClient* client_; |
@@ -239,7 +247,17 @@ private: |
AckSource current_ack_source_; |
scoped_ptr<TouchEventQueue> touch_event_queue_; |
- scoped_ptr<GestureEventFilter> gesture_event_filter_; |
+ scoped_ptr<Flinger> flinger_; |
+ |
+ class EventFilteringHelper; |
+ scoped_ptr<EventFilteringHelper> event_filter_; |
+ |
+ enum InputMessageSource { |
+ MESSAGE_SOURCE_FLING, |
+ MESSAGE_SOURCE_REGULAR, |
+ }; |
+ |
+ std::queue<InputMessageSource> in_process_messages_sources_; |
DISALLOW_COPY_AND_ASSIGN(ImmediateInputRouter); |
}; |