diff options
author | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-03 21:39:24 +0000 |
---|---|---|
committer | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-03 21:39:24 +0000 |
commit | 208d64e7f240f9554a84ec0f2225c2302e6cde29 (patch) | |
tree | 0f5a3ee2405b848fe3869867e36d42e0a8964094 /content/browser/renderer_host/input/touchpad_tap_suppression_controller.cc | |
parent | 7009d9b8d8bee27f40080f6dca4af72281e579dc (diff) | |
download | chromium_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.cc | 40 |
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 |