blob: e7770120a56744c6bcc05c80290889299996abc4 [file] [log] [blame]
// Copyright 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/input/touchscreen_tap_suppression_controller.h"
#include "content/browser/renderer_host/input/gesture_event_filter.h"
#include "content/browser/renderer_host/input/tap_suppression_controller.h"
#include "ui/events/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 GestureEventWithLatencyInfo& 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::ForwardStashedTapDown() {
gesture_event_filter_->ForwardGestureEvent(stashed_tap_down_);
}
} // namespace content