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

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 some compilation issues. 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..fe5e4dc60fd995d389d0fd2e278ef1fff6c09fff 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,12 @@ bool InputRouterImpl::OnMessageReceived(const IPC::Message& message) {
void InputRouterImpl::OnTouchEventAck(const TouchEventWithLatencyInfo& event,
InputEventAckState ack_result) {
+ // Touchstart events sent to the renderer indicate a new touch sequence, but
+ // in some cases we may filter out sending the touchstart - catch those here.
+ if (event.event.type == WebInputEvent::TouchStart &&
jdduke (slow) 2014/02/26 15:40:55 Shouldn't this be |IsTouchSequenceStart()|?
tdresser 2014/02/26 19:31:27 Done.
+ ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS) {
+ touch_action_filter_.OnTouchSequenceStart();
jdduke (slow) 2014/02/26 15:40:55 Can we rename |OnTouchSequenceStart()| to somethin
tdresser 2014/02/26 19:31:27 Done.
+ }
ack_handler_->OnTouchEventAck(event, ack_result);
}

Powered by Google App Engine
This is Rietveld 408576698