| Index: content/browser/renderer_host/input/gesture_event_filter.cc
|
| diff --git a/content/browser/renderer_host/input/gesture_event_filter.cc b/content/browser/renderer_host/input/gesture_event_filter.cc
|
| deleted file mode 100644
|
| index 5b5720c94e83e5e82fb9cb9b8259a6cc2b3a633f..0000000000000000000000000000000000000000
|
| --- a/content/browser/renderer_host/input/gesture_event_filter.cc
|
| +++ /dev/null
|
| @@ -1,151 +0,0 @@
|
| -// 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/gesture_event_filter.h"
|
| -
|
| -#include "base/command_line.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "content/browser/renderer_host/input/input_router.h"
|
| -#include "content/browser/renderer_host/input/touchpad_tap_suppression_controller.h"
|
| -#include "content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h"
|
| -#include "content/public/common/content_switches.h"
|
| -
|
| -using WebKit::WebGestureEvent;
|
| -using WebKit::WebInputEvent;
|
| -
|
| -namespace content {
|
| -GestureEventFilter::GestureEventFilter(
|
| - GestureEventFilterClient* client,
|
| - TouchpadTapSuppressionControllerClient* touchpad_client)
|
| - : BaseGestureEventFilter(client),
|
| - fling_in_progress_(false),
|
| - touchpad_tap_suppression_controller_(
|
| - new TouchpadTapSuppressionController(touchpad_client)),
|
| - touchscreen_tap_suppression_controller_(
|
| - new TouchscreenTapSuppressionController(this)) {
|
| - DCHECK(client);
|
| - DCHECK(touchpad_tap_suppression_controller_);
|
| -}
|
| -
|
| -GestureEventFilter::~GestureEventFilter() { }
|
| -
|
| -bool GestureEventFilter::ShouldDiscardFlingCancelEvent(
|
| - const GestureEventWithLatencyInfo& gesture_event) const {
|
| - if (coalesced_gesture_events_.empty() && fling_in_progress_)
|
| - return false;
|
| - GestureEventQueue::const_reverse_iterator it =
|
| - coalesced_gesture_events_.rbegin();
|
| - while (it != coalesced_gesture_events_.rend()) {
|
| - if (it->event.type == WebInputEvent::GestureFlingStart)
|
| - return false;
|
| - if (it->event.type == WebInputEvent::GestureFlingCancel)
|
| - return true;
|
| - it++;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -// NOTE: The filters are applied successively. This simplifies the change.
|
| -bool GestureEventFilter::ShouldForward(
|
| - const GestureEventWithLatencyInfo& gesture_event) {
|
| - return ShouldForwardForZeroVelocityFlingStart(gesture_event) &&
|
| - ShouldForwardForBounceReduction(gesture_event) &&
|
| - ShouldForwardForGFCFiltering(gesture_event) &&
|
| - ShouldForwardForTapSuppression(gesture_event) &&
|
| - ShouldForwardForCoalescing(gesture_event);
|
| -}
|
| -
|
| -bool GestureEventFilter::ShouldForwardForZeroVelocityFlingStart(
|
| - const GestureEventWithLatencyInfo& gesture_event) const {
|
| - return gesture_event.event.type != WebInputEvent::GestureFlingStart ||
|
| - gesture_event.event.sourceDevice != WebGestureEvent::Touchpad ||
|
| - gesture_event.event.data.flingStart.velocityX != 0 ||
|
| - gesture_event.event.data.flingStart.velocityY != 0;
|
| -}
|
| -
|
| -bool GestureEventFilter::ShouldForwardForGFCFiltering(
|
| - const GestureEventWithLatencyInfo& gesture_event) const {
|
| - return gesture_event.event.type != WebInputEvent::GestureFlingCancel ||
|
| - !ShouldDiscardFlingCancelEvent(gesture_event);
|
| -}
|
| -
|
| -bool GestureEventFilter::ShouldForwardForTapSuppression(
|
| - const GestureEventWithLatencyInfo& gesture_event) {
|
| - switch (gesture_event.event.type) {
|
| - case WebInputEvent::GestureFlingCancel:
|
| - if (gesture_event.event.sourceDevice == WebGestureEvent::Touchscreen)
|
| - touchscreen_tap_suppression_controller_->GestureFlingCancel();
|
| - else
|
| - touchpad_tap_suppression_controller_->GestureFlingCancel();
|
| - return true;
|
| - case WebInputEvent::GestureTapDown:
|
| - return !touchscreen_tap_suppression_controller_->
|
| - ShouldDeferGestureTapDown(gesture_event);
|
| - case WebInputEvent::GestureTapCancel:
|
| - return !touchscreen_tap_suppression_controller_->
|
| - ShouldSuppressGestureTapCancel();
|
| - case WebInputEvent::GestureTap:
|
| - case WebInputEvent::GestureTapUnconfirmed:
|
| - return !touchscreen_tap_suppression_controller_->
|
| - ShouldSuppressGestureTap();
|
| - default:
|
| - return true;
|
| - }
|
| - NOTREACHED();
|
| - return false;
|
| -}
|
| -
|
| -bool GestureEventFilter::ShouldForwardScrollEndingEvent(
|
| - const GestureEventWithLatencyInfo& event) {
|
| - return ShouldForwardForGFCFiltering(event) &&
|
| - ShouldForwardForTapSuppression(event) &&
|
| - ShouldForwardForCoalescing(event);
|
| -}
|
| -
|
| -bool GestureEventFilter::ShouldForwardForCoalescing(
|
| - const GestureEventWithLatencyInfo& gesture_event) {
|
| - switch (gesture_event.event.type) {
|
| - case WebInputEvent::GestureFlingCancel:
|
| - fling_in_progress_ = false;
|
| - break;
|
| - case WebInputEvent::GestureFlingStart:
|
| - fling_in_progress_ = true;
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| - return BaseGestureEventFilter::ShouldForwardForCoalescing(gesture_event);
|
| -}
|
| -
|
| -void GestureEventFilter::ProcessGestureAck(InputEventAckState ack_result,
|
| - WebInputEvent::Type type,
|
| - const ui::LatencyInfo& latency) {
|
| - if (coalesced_gesture_events_.empty()) {
|
| - DLOG(ERROR) << "Received unexpected ACK for event type " << type;
|
| - return;
|
| - }
|
| - DCHECK_EQ(coalesced_gesture_events_.front().event.type, type);
|
| -
|
| - const bool processed = (INPUT_EVENT_ACK_STATE_CONSUMED == ack_result);
|
| - if (type == WebInputEvent::GestureFlingCancel) {
|
| - if (coalesced_gesture_events_.front().event.sourceDevice ==
|
| - WebGestureEvent::Touchscreen)
|
| - touchscreen_tap_suppression_controller_->GestureFlingCancelAck(processed);
|
| - else
|
| - touchpad_tap_suppression_controller_->GestureFlingCancelAck(processed);
|
| - }
|
| -
|
| - BaseGestureEventFilter::ProcessGestureAck(ack_result, type, latency);
|
| -}
|
| -
|
| -TouchpadTapSuppressionController*
|
| - GestureEventFilter::GetTouchpadTapSuppressionController() {
|
| - return touchpad_tap_suppression_controller_.get();
|
| -}
|
| -
|
| -void GestureEventFilter::FlingHasBeenHalted() {
|
| - fling_in_progress_ = false;
|
| -}
|
| -
|
| -} // namespace content
|
|
|