Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: ui/events/gestures/gesture_recognizer_impl.cc

Issue 393953012: Eager Gesture Recognition on Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/events/gestures/gesture_recognizer_impl.h" 5 #include "ui/events/gestures/gesture_recognizer_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 helper->DispatchGestureEvent(event); 287 helper->DispatchGestureEvent(event);
288 } 288 }
289 } 289 }
290 290
291 ScopedVector<GestureEvent>* GestureRecognizerImpl::ProcessTouchEventForGesture( 291 ScopedVector<GestureEvent>* GestureRecognizerImpl::ProcessTouchEventForGesture(
292 const TouchEvent& event, 292 const TouchEvent& event,
293 ui::EventResult result, 293 ui::EventResult result,
294 GestureConsumer* target) { 294 GestureConsumer* target) {
295 SetupTargets(event, target); 295 SetupTargets(event, target);
296 296
297 if (result & ER_CONSUMED)
298 return NULL;
299
297 if (!use_unified_gesture_detector_) { 300 if (!use_unified_gesture_detector_) {
298 GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(target); 301 GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(target);
299 return gesture_sequence->ProcessTouchEventForGesture(event, result); 302 return gesture_sequence->ProcessTouchEventForGesture(event, result);
300 } else { 303 } else {
301 GestureProviderAura* gesture_provider = 304 GestureProviderAura* gesture_provider =
302 GetGestureProviderForConsumer(target); 305 GetGestureProviderForConsumer(target);
303 // TODO(tdresser) - detect gestures eagerly. 306 gesture_provider->OnTouchEvent(event);
304 if (!(result & ER_CONSUMED)) {
305 if (gesture_provider->OnTouchEvent(event)) {
306 gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
307 return gesture_provider->GetAndResetPendingGestures();
308 }
309 }
310 return NULL; 307 return NULL;
311 } 308 }
312 } 309 }
313 310
311 ScopedVector<GestureEvent>* GestureRecognizerImpl::AckTouchEventForGesture(
312 ui::EventResult result,
313 GestureConsumer* target) {
314 DCHECK(use_unified_gesture_detector_);
315 GestureProviderAura* gesture_provider = GetGestureProviderForConsumer(target);
316 gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
317 return gesture_provider->GetAndResetPendingGestures();
318 }
319
314 bool GestureRecognizerImpl::CleanupStateForConsumer( 320 bool GestureRecognizerImpl::CleanupStateForConsumer(
315 GestureConsumer* consumer) { 321 GestureConsumer* consumer) {
316 bool state_cleaned_up = false; 322 bool state_cleaned_up = false;
317 323
318 if (!use_unified_gesture_detector_) { 324 if (!use_unified_gesture_detector_) {
319 if (consumer_sequence_.count(consumer)) { 325 if (consumer_sequence_.count(consumer)) {
320 state_cleaned_up = true; 326 state_cleaned_up = true;
321 delete consumer_sequence_[consumer]; 327 delete consumer_sequence_[consumer];
322 consumer_sequence_.erase(consumer); 328 consumer_sequence_.erase(consumer);
323 } 329 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 std::vector<GestureEventHelper*>::iterator it; 398 std::vector<GestureEventHelper*>::iterator it;
393 for (it = helpers.begin(); it != helpers.end(); ++it) 399 for (it = helpers.begin(); it != helpers.end(); ++it)
394 gesture_recognizer->AddGestureEventHelper(*it); 400 gesture_recognizer->AddGestureEventHelper(*it);
395 401
396 helpers.clear(); 402 helpers.clear();
397 g_gesture_recognizer_instance = 403 g_gesture_recognizer_instance =
398 static_cast<GestureRecognizerImpl*>(gesture_recognizer); 404 static_cast<GestureRecognizerImpl*>(gesture_recognizer);
399 } 405 }
400 406
401 } // namespace ui 407 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698