Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / browser / renderer_host / input / touchpad_tap_suppression_controller.cc
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/input/touchpad_tap_suppression_controller.h"
6
7 namespace content {
8
9 TouchpadTapSuppressionController::TouchpadTapSuppressionController(
10     TouchpadTapSuppressionControllerClient* client,
11     const TapSuppressionController::Config& config)
12     : client_(client), controller_(this, config) {
13 }
14
15 TouchpadTapSuppressionController::~TouchpadTapSuppressionController() {}
16
17 void TouchpadTapSuppressionController::GestureFlingCancel() {
18   controller_.GestureFlingCancel();
19 }
20
21 void TouchpadTapSuppressionController::GestureFlingCancelAck(bool processed) {
22   controller_.GestureFlingCancelAck(processed);
23 }
24
25 bool TouchpadTapSuppressionController::ShouldDeferMouseDown(
26     const MouseEventWithLatencyInfo& event) {
27   bool should_defer = controller_.ShouldDeferTapDown();
28   if (should_defer)
29     stashed_mouse_down_ = event;
30   return should_defer;
31 }
32
33 bool TouchpadTapSuppressionController::ShouldSuppressMouseUp() {
34   return controller_.ShouldSuppressTapEnd();
35 }
36
37 void TouchpadTapSuppressionController::DropStashedTapDown() {
38 }
39
40 void TouchpadTapSuppressionController::ForwardStashedTapDown() {
41   // Mouse downs are not handled by gesture event filter; so, they are
42   // immediately forwarded to the renderer.
43   client_->SendMouseEventImmediately(stashed_mouse_down_);
44 }
45
46 }  // namespace content