Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9046)

Unified Diff: content/browser/renderer_host/input/input_router_impl.cc

Issue 171283002: Always reset touch action at the beginning of a new gesture sequence (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix case where touch handler is removed. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b303acdb94cb21899d3042796cce2fe0c561ca98..af3601972cfa0cbdd854e2173b9afa9938a4516e 100644
--- a/content/browser/renderer_host/input/input_router_impl.cc
+++ b/content/browser/renderer_host/input/input_router_impl.cc
@@ -13,11 +13,11 @@
#include "content/browser/renderer_host/input/input_router_client.h"
#include "content/browser/renderer_host/input/touch_event_queue.h"
#include "content/browser/renderer_host/input/touchpad_tap_suppression_controller.h"
+#include "content/browser/renderer_host/input/web_touch_event_traits.h"
#include "content/browser/renderer_host/overscroll_controller.h"
#include "content/common/content_constants_internal.h"
#include "content/common/edit_command.h"
#include "content/common/input/touch_action.h"
-#include "content/common/input/web_input_event_traits.h"
#include "content/common/input_messages.h"
#include "content/common/view_messages.h"
#include "content/port/common/input_event_ack_state.h"
@@ -286,6 +286,9 @@ void InputRouterImpl::SendMouseEventImmediately(
void InputRouterImpl::SendTouchEventImmediately(
const TouchEventWithLatencyInfo& touch_event) {
+ if (WebTouchEventTraits::IsTouchSequenceStart(touch_event.event))
+ touch_action_filter_.OnTouchSequenceStart();
+
FilterAndSendWebInputEvent(touch_event.event, touch_event.latency, false);
}
@@ -335,6 +338,8 @@ bool InputRouterImpl::OnMessageReceived(const IPC::Message& message) {
void InputRouterImpl::OnTouchEventAck(const TouchEventWithLatencyInfo& event,
InputEventAckState ack_result) {
+ if (ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS)
+ touch_action_filter_.OnTouchSequenceStart();
Rick Byers 2014/02/25 23:03:37 I think we want to do this for TouchStart events o
tdresser 2014/02/26 14:04:49 Done.
Rick Byers 2014/02/26 14:32:33 nit: since the assumptions here may change in the
tdresser 2014/02/26 15:16:13 Whoops, sorry. Done.
ack_handler_->OnTouchEventAck(event, ack_result);
}

Powered by Google App Engine
This is Rietveld 408576698