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

Unified Diff: content/browser/renderer_host/touchscreen_tap_suppression_controller.cc

Issue 12087140: Suppress touchscreen tap immediately after a GestureFlingCancel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Allowed GFC Ack in NOTHING state + Resolved a link error on win Created 7 years, 9 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/touchscreen_tap_suppression_controller.cc
diff --git a/content/browser/renderer_host/touchscreen_tap_suppression_controller.cc b/content/browser/renderer_host/touchscreen_tap_suppression_controller.cc
new file mode 100644
index 0000000000000000000000000000000000000000..8de9e4002aab7d208e7895d67e2004e1758d6739
--- /dev/null
+++ b/content/browser/renderer_host/touchscreen_tap_suppression_controller.cc
@@ -0,0 +1,66 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/renderer_host/touchscreen_tap_suppression_controller.h"
+
+#include "content/browser/renderer_host/gesture_event_filter.h"
+#include "content/browser/renderer_host/tap_suppression_controller.h"
+#include "ui/base/gestures/gesture_configuration.h"
+
+namespace content {
+
+TouchscreenTapSuppressionController::TouchscreenTapSuppressionController(
+ GestureEventFilter* gef)
+ : gesture_event_filter_(gef),
+ controller_(new TapSuppressionController(this)) {
+}
+
+TouchscreenTapSuppressionController::~TouchscreenTapSuppressionController() {}
+
+void TouchscreenTapSuppressionController::GestureFlingCancel() {
+ controller_->GestureFlingCancel();
+}
+
+void TouchscreenTapSuppressionController::GestureFlingCancelAck(
+ bool processed) {
+ controller_->GestureFlingCancelAck(processed);
+}
+
+bool TouchscreenTapSuppressionController::ShouldDeferGestureTapDown(
+ const WebKit::WebGestureEvent& event) {
+ bool should_defer = controller_->ShouldDeferTapDown();
+ if (should_defer)
+ stashed_tap_down_ = event;
+ return should_defer;
+}
+
+bool TouchscreenTapSuppressionController::ShouldSuppressGestureTap() {
+ return controller_->ShouldSuppressTapUp();
+}
+
+bool TouchscreenTapSuppressionController::ShouldSuppressGestureTapCancel() {
+ return controller_->ShouldSuppressTapCancel();
+}
+
+int TouchscreenTapSuppressionController::MaxCancelToDownTimeInMs() {
+ return ui::GestureConfiguration::fling_max_cancel_to_down_time_in_ms();
+}
+
+int TouchscreenTapSuppressionController::MaxTapGapTimeInMs() {
+ return static_cast<int>(
+ ui::GestureConfiguration::semi_long_press_time_in_seconds() * 1000);
+}
+
+void TouchscreenTapSuppressionController::DropStashedTapDown() {
+}
+
+void TouchscreenTapSuppressionController::ForwardStashedTapDownForDeferral() {
+ gesture_event_filter_->ForwardGestureEventForDeferral(stashed_tap_down_);
+}
+
+void TouchscreenTapSuppressionController::ForwardStashedTapDownSkipDeferral() {
+ gesture_event_filter_->ForwardGestureEventSkipDeferral(stashed_tap_down_);
+}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698