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 6c78d57b0213ecbfbc1ce152e3052783e466807c..53066160308e6c5a2d383cd2b4ed70b76b828458 100644 |
--- a/content/renderer/input/input_event_filter.cc |
+++ b/content/renderer/input/input_event_filter.cc |
@@ -21,6 +21,7 @@ |
#include "ui/gfx/geometry/vector2d_f.h" |
using blink::WebInputEvent; |
+using blink::WebTouchEvent; |
#include "ipc/ipc_message_null_macros.h" |
#undef IPC_MESSAGE_DECL |
@@ -177,6 +178,20 @@ void InputEventFilter::ForwardToHandler(const IPC::Message& message) { |
if (!send_ack) |
return; |
+ // Send AsyncTouchEvent_ACK for async touch moves, and InputEvent_ACK for |
+ // all other types of events. |
+ if (WebInputEvent::isTouchEventType(event->type)) { |
+ const WebTouchEvent& touch = static_cast<const WebTouchEvent&>(*event); |
+ if (touch.type == WebInputEvent::TouchMove && !touch.cancelable) { |
tdresser
2015/03/25 14:16:18
We don't need the outer "if", do we?
lanwei
2015/03/26 11:54:38
Done.
|
+ InputHostMsg_HandleUncancelableTouchMoveEvent_ACK_Params ack; |
+ ack.type = event->type; |
+ SendMessage(scoped_ptr<IPC::Message>( |
+ new InputHostMsg_HandleUncancelableTouchMoveEvent_ACK(routing_id, |
+ ack))); |
+ return; |
+ } |
+ } |
+ |
InputHostMsg_HandleInputEvent_ACK_Params ack; |
ack.type = event->type; |
ack.state = ack_state; |