| Index: content/browser/renderer_host/input/touch_event_queue.cc
|
| diff --git a/content/browser/renderer_host/input/touch_event_queue.cc b/content/browser/renderer_host/input/touch_event_queue.cc
|
| index 75c81442e93005832c0f628562089fc690ea0c96..f66493ac92eed17dfd818d83faf9bb2d8d7693ea 100644
|
| --- a/content/browser/renderer_host/input/touch_event_queue.cc
|
| +++ b/content/browser/renderer_host/input/touch_event_queue.cc
|
| @@ -23,11 +23,6 @@ namespace {
|
| // scrolling is active and possible.
|
| const double kAsyncTouchMoveIntervalSec = .2;
|
|
|
| -// A slop region just larger than that used by many web applications. When
|
| -// touchmove's are being sent asynchronously, movement outside this region will
|
| -// trigger an immediate async touchmove to cancel potential tap-related logic.
|
| -const double kApplicationSlopRegionLengthDipsSqared = 15. * 15.;
|
| -
|
| // A sanity check on touches received to ensure that touch movement outside
|
| // the platform slop region will cause scrolling, as indicated by the event's
|
| // |causesScrollingIfUncanceled| bit.
|
| @@ -50,12 +45,6 @@ bool ShouldTouchTriggerTimeout(const WebTouchEvent& event) {
|
| !WebInputEventTraits::IgnoresAckDisposition(event);
|
| }
|
|
|
| -bool OutsideApplicationSlopRegion(const WebTouchEvent& event,
|
| - const gfx::PointF& anchor) {
|
| - return (gfx::PointF(event.touches[0].position) - anchor).LengthSquared() >
|
| - kApplicationSlopRegionLengthDipsSqared;
|
| -}
|
| -
|
| } // namespace
|
|
|
|
|
| @@ -368,7 +357,6 @@ TouchEventQueue::TouchEventQueue(TouchEventQueueClient* client,
|
| drop_remaining_touches_in_sequence_(false),
|
| touchmove_slop_suppressor_(new TouchMoveSlopSuppressor),
|
| send_touch_events_async_(false),
|
| - needs_async_touchmove_for_outer_slop_region_(false),
|
| last_sent_touch_timestamp_sec_(0),
|
| touch_scrolling_mode_(config.touch_scrolling_mode) {
|
| DCHECK(client);
|
| @@ -471,15 +459,12 @@ void TouchEventQueue::ForwardNextEventToRenderer() {
|
| // application be sent touches at key points in the gesture stream,
|
| // e.g., when the application slop region is exceeded or touchmove
|
| // coalescing fails because of different modifiers.
|
| - const bool send_touchmove_now =
|
| - size() > 1 ||
|
| - (touch.event.timeStampSeconds >=
|
| - last_sent_touch_timestamp_sec_ + kAsyncTouchMoveIntervalSec) ||
|
| - (needs_async_touchmove_for_outer_slop_region_ &&
|
| - OutsideApplicationSlopRegion(touch.event,
|
| - touch_sequence_start_position_)) ||
|
| - (pending_async_touchmove_ &&
|
| - !pending_async_touchmove_->CanCoalesceWith(touch));
|
| + bool send_touchmove_now = size() > 1;
|
| + send_touchmove_now |= pending_async_touchmove_ &&
|
| + !pending_async_touchmove_->CanCoalesceWith(touch);
|
| + send_touchmove_now |=
|
| + touch.event.timeStampSeconds >=
|
| + last_sent_touch_timestamp_sec_ + kAsyncTouchMoveIntervalSec;
|
|
|
| if (!send_touchmove_now) {
|
| if (!pending_async_touchmove_) {
|
| @@ -553,10 +538,8 @@ void TouchEventQueue::OnGestureScrollEvent(
|
| drop_remaining_touches_in_sequence_ = true;
|
| }
|
|
|
| - if (touch_scrolling_mode_ == TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE) {
|
| - needs_async_touchmove_for_outer_slop_region_ = true;
|
| + if (touch_scrolling_mode_ == TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE)
|
| pending_async_touchmove_.reset();
|
| - }
|
|
|
| return;
|
| }
|
| @@ -609,8 +592,6 @@ void TouchEventQueue::OnGestureEventAck(
|
| // A valid |pending_async_touchmove_| will be flushed when the next event is
|
| // forwarded.
|
| send_touch_events_async_ = (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED);
|
| - if (!send_touch_events_async_)
|
| - needs_async_touchmove_for_outer_slop_region_ = false;
|
| }
|
|
|
| void TouchEventQueue::OnHasTouchEventHandlers(bool has_handlers) {
|
| @@ -694,16 +675,6 @@ scoped_ptr<CoalescedWebTouchEvent> TouchEventQueue::PopTouchEvent() {
|
|
|
| void TouchEventQueue::SendTouchEventImmediately(
|
| const TouchEventWithLatencyInfo& touch) {
|
| - if (needs_async_touchmove_for_outer_slop_region_) {
|
| - // Any event other than a touchmove (e.g., touchcancel or secondary
|
| - // touchstart) after a scroll has started will interrupt the need to send a
|
| - // an outer slop-region exceeding touchmove.
|
| - if (touch.event.type != WebInputEvent::TouchMove ||
|
| - OutsideApplicationSlopRegion(touch.event,
|
| - touch_sequence_start_position_))
|
| - needs_async_touchmove_for_outer_slop_region_ = false;
|
| - }
|
| -
|
| client_->SendTouchEventImmediately(touch);
|
| }
|
|
|
|
|