| Index: ui/events/gestures/gesture_recognizer_impl.cc
|
| diff --git a/ui/events/gestures/gesture_recognizer_impl.cc b/ui/events/gestures/gesture_recognizer_impl.cc
|
| index 38c07f8ecacd6d06debe667e77c9ae5a40de563e..099d29f0112973af828b491cf255fe71110afd45 100644
|
| --- a/ui/events/gestures/gesture_recognizer_impl.cc
|
| +++ b/ui/events/gestures/gesture_recognizer_impl.cc
|
| @@ -288,26 +288,54 @@ void GestureRecognizerImpl::DispatchGestureEvent(GestureEvent* event) {
|
| }
|
| }
|
|
|
| -ScopedVector<GestureEvent>* GestureRecognizerImpl::ProcessTouchEventForGesture(
|
| +bool GestureRecognizerImpl::ProcessTouchEventPreDispatch(
|
| const TouchEvent& event,
|
| - ui::EventResult result,
|
| - GestureConsumer* target) {
|
| - SetupTargets(event, target);
|
| + GestureConsumer* consumer) {
|
| + SetupTargets(event, consumer);
|
|
|
| - if (!use_unified_gesture_detector_) {
|
| - GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(target);
|
| - return gesture_sequence->ProcessTouchEventForGesture(event, result);
|
| + // If we aren't using the unified GR, we definitely want to dispatch the
|
| + // event.
|
| + if (!ui::IsUnifiedGestureDetectorEnabled())
|
| + return true;
|
| +
|
| + if (event.result() & ER_CONSUMED)
|
| + return false;
|
| +
|
| + GestureProviderAura* gesture_provider =
|
| + GetGestureProviderForConsumer(consumer);
|
| + return gesture_provider->OnTouchEvent(event);
|
| +}
|
| +
|
| +GestureRecognizer::Gestures*
|
| +GestureRecognizerImpl::ProcessTouchEventPostDispatch(
|
| + const TouchEvent& event,
|
| + ui::EventResult result,
|
| + GestureConsumer* consumer) {
|
| + if (ui::IsUnifiedGestureDetectorEnabled()) {
|
| + GestureProviderAura* gesture_provider =
|
| + GetGestureProviderForConsumer(consumer);
|
| + gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
|
| + return gesture_provider->GetAndResetPendingGestures();
|
| } else {
|
| + GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(consumer);
|
| + return gesture_sequence->ProcessTouchEventForGesture(event, result);
|
| + }
|
| +}
|
| +
|
| +GestureRecognizer::Gestures* GestureRecognizerImpl::ProcessTouchEventOnAsyncAck(
|
| + const TouchEvent& event,
|
| + ui::EventResult result,
|
| + GestureConsumer* consumer) {
|
| + if (ui::IsUnifiedGestureDetectorEnabled()) {
|
| + if (result & ui::ER_CONSUMED)
|
| + return NULL;
|
| GestureProviderAura* gesture_provider =
|
| - GetGestureProviderForConsumer(target);
|
| - // TODO(tdresser) - detect gestures eagerly.
|
| - if (!(result & ER_CONSUMED)) {
|
| - if (gesture_provider->OnTouchEvent(event)) {
|
| - gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
|
| - return gesture_provider->GetAndResetPendingGestures();
|
| - }
|
| - }
|
| - return NULL;
|
| + GetGestureProviderForConsumer(consumer);
|
| + gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
|
| + return gesture_provider->GetAndResetPendingGestures();
|
| + } else {
|
| + GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(consumer);
|
| + return gesture_sequence->ProcessTouchEventForGesture(event, result);
|
| }
|
| }
|
|
|
|
|