Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / browser / renderer_host / input / touchscreen_tap_suppression_controller.cc
index b05407b..872cfb0 100644 (file)
@@ -5,74 +5,57 @@
 #include "content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h"
 
 #include "content/browser/renderer_host/input/gesture_event_queue.h"
-#include "content/browser/renderer_host/input/tap_suppression_controller.h"
-#include "ui/events/gestures/gesture_configuration.h"
 
-#if defined(OS_ANDROID)
-#include "ui/gfx/android/view_configuration.h"
-#endif
+using blink::WebInputEvent;
 
 namespace content {
 
 TouchscreenTapSuppressionController::TouchscreenTapSuppressionController(
-    GestureEventQueue* geq)
-    : gesture_event_queue_(geq),
-      controller_(new TapSuppressionController(this)) {
+    GestureEventQueue* geq,
+    const TapSuppressionController::Config& config)
+    : gesture_event_queue_(geq), controller_(this, config) {
 }
 
 TouchscreenTapSuppressionController::~TouchscreenTapSuppressionController() {}
 
 void TouchscreenTapSuppressionController::GestureFlingCancel() {
-  controller_->GestureFlingCancel();
+  controller_.GestureFlingCancel();
 }
 
 void TouchscreenTapSuppressionController::GestureFlingCancelAck(
     bool processed) {
-  controller_->GestureFlingCancelAck(processed);
+  controller_.GestureFlingCancelAck(processed);
 }
 
-bool TouchscreenTapSuppressionController::ShouldDeferGestureTapDown(
+bool TouchscreenTapSuppressionController::FilterTapEvent(
     const GestureEventWithLatencyInfo& event) {
-  bool should_defer = controller_->ShouldDeferTapDown();
-  if (should_defer)
-    stashed_tap_down_.reset(new GestureEventWithLatencyInfo(event));
-  return should_defer;
+  switch (event.event.type) {
+    case WebInputEvent::GestureTapDown:
+      if (!controller_.ShouldDeferTapDown())
+        return false;
+      stashed_tap_down_.reset(new GestureEventWithLatencyInfo(event));
+      return true;
+
+    case WebInputEvent::GestureShowPress:
+      if (!stashed_tap_down_)
+        return false;
+      stashed_show_press_.reset(new GestureEventWithLatencyInfo(event));
+      return true;
+
+    case WebInputEvent::GestureTapUnconfirmed:
+      return stashed_tap_down_;
+
+    case WebInputEvent::GestureTapCancel:
+    case WebInputEvent::GestureTap:
+    case WebInputEvent::GestureDoubleTap:
+      return controller_.ShouldSuppressTapEnd();
+
+    default:
+      break;
+  }
+  return false;
 }
 
-bool TouchscreenTapSuppressionController::ShouldDeferGestureShowPress(
-    const GestureEventWithLatencyInfo& event) {
-  if (!stashed_tap_down_)
-    return false;
-
-  stashed_show_press_.reset(new GestureEventWithLatencyInfo(event));
-  return true;
-}
-
-bool TouchscreenTapSuppressionController::ShouldSuppressGestureTapEnd() {
-  return controller_->ShouldSuppressTapEnd();
-}
-
-#if defined(OS_ANDROID)
-// TODO(jdduke): Enable ui::GestureConfiguration on Android and initialize
-//               with parameters from ViewConfiguration.
-int TouchscreenTapSuppressionController::MaxCancelToDownTimeInMs() {
-  return gfx::ViewConfiguration::GetTapTimeoutInMs();
-}
-
-int TouchscreenTapSuppressionController::MaxTapGapTimeInMs() {
-  return gfx::ViewConfiguration::GetLongPressTimeoutInMs();
-}
-#else
-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);
-}
-#endif
-
 void TouchscreenTapSuppressionController::DropStashedTapDown() {
   stashed_tap_down_.reset();
   stashed_show_press_.reset();