summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc
diff options
context:
space:
mode:
authorjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-03 21:39:24 +0000
committerjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-03 21:39:24 +0000
commit208d64e7f240f9554a84ec0f2225c2302e6cde29 (patch)
tree0f5a3ee2405b848fe3869867e36d42e0a8964094 /content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc
parent7009d9b8d8bee27f40080f6dca4af72281e579dc (diff)
downloadchromium_src-208d64e7f240f9554a84ec0f2225c2302e6cde29.zip
chromium_src-208d64e7f240f9554a84ec0f2225c2302e6cde29.tar.gz
chromium_src-208d64e7f240f9554a84ec0f2225c2302e6cde29.tar.bz2
Reland "Consolidate all touch/gesture related constants in content"
InputRouter, TouchEventQueue and GestureEventQueue all use a variety of configuration parameters that are littered through the code in a very ad-hoc and hard-to-follow fashion. Consolidate all such parameters into well-defined configuration structs, with helper functions to generate the appropriate parameters per platform. This simplifies testing and eases the mental burden of tracking down the origin of the various magic constants. Note that this change disables scroll gesture debounce by default, enabling it only for ChromeOS. The original patch landed in r268051 but was reverted in r268052 due to content_perftest compilation issues that have since been fixed. BUG=343917,353702 Review URL: https://codereview.chromium.org/235003005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268078 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc')
-rw-r--r--content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc40
1 files changed, 19 insertions, 21 deletions
diff --git a/content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc b/content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc
index d920779..d309742 100644
--- a/content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc
+++ b/content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc
@@ -4,45 +4,43 @@
#include "content/browser/renderer_host/input/touchpad_tap_suppression_controller.h"
-#include "content/browser/renderer_host/input/tap_suppression_controller.h"
-#include "content/browser/renderer_host/input/tap_suppression_controller_client.h"
-
-// The default implementation of the TouchpadTapSuppressionController does not
-// suppress taps. Touchpad tap suppression is needed only on CrOS.
-
namespace content {
TouchpadTapSuppressionController::TouchpadTapSuppressionController(
- TouchpadTapSuppressionControllerClient* /* client */)
- : client_(NULL) {}
+ TouchpadTapSuppressionControllerClient* client,
+ const TapSuppressionController::Config& config)
+ : client_(client), controller_(this, config) {
+}
TouchpadTapSuppressionController::~TouchpadTapSuppressionController() {}
-void TouchpadTapSuppressionController::GestureFlingCancel() {}
-
-void TouchpadTapSuppressionController::GestureFlingCancelAck(
- bool /*processed*/) {
+void TouchpadTapSuppressionController::GestureFlingCancel() {
+ controller_.GestureFlingCancel();
}
-bool TouchpadTapSuppressionController::ShouldDeferMouseDown(
- const MouseEventWithLatencyInfo& /*event*/) {
- return false;
+void TouchpadTapSuppressionController::GestureFlingCancelAck(bool processed) {
+ controller_.GestureFlingCancelAck(processed);
}
-bool TouchpadTapSuppressionController::ShouldSuppressMouseUp() { return false; }
-
-int TouchpadTapSuppressionController::MaxCancelToDownTimeInMs() {
- return 0;
+bool TouchpadTapSuppressionController::ShouldDeferMouseDown(
+ const MouseEventWithLatencyInfo& event) {
+ bool should_defer = controller_.ShouldDeferTapDown();
+ if (should_defer)
+ stashed_mouse_down_ = event;
+ return should_defer;
}
-int TouchpadTapSuppressionController::MaxTapGapTimeInMs() {
- return 0;
+bool TouchpadTapSuppressionController::ShouldSuppressMouseUp() {
+ return controller_.ShouldSuppressTapEnd();
}
void TouchpadTapSuppressionController::DropStashedTapDown() {
}
void TouchpadTapSuppressionController::ForwardStashedTapDown() {
+ // Mouse downs are not handled by gesture event filter; so, they are
+ // immediately forwarded to the renderer.
+ client_->SendMouseEventImmediately(stashed_mouse_down_);
}
} // namespace content