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

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: Rebase. Created 6 years, 4 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 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 281
282 void GestureRecognizerImpl::DispatchGestureEvent(GestureEvent* event) { 282 void GestureRecognizerImpl::DispatchGestureEvent(GestureEvent* event) {
283 GestureConsumer* consumer = GetTargetForGestureEvent(*event); 283 GestureConsumer* consumer = GetTargetForGestureEvent(*event);
284 if (consumer) { 284 if (consumer) {
285 GestureEventHelper* helper = FindDispatchHelperForConsumer(consumer); 285 GestureEventHelper* helper = FindDispatchHelperForConsumer(consumer);
286 if (helper) 286 if (helper)
287 helper->DispatchGestureEvent(event); 287 helper->DispatchGestureEvent(event);
288 } 288 }
289 } 289 }
290 290
291 ScopedVector<GestureEvent>* GestureRecognizerImpl::ProcessTouchEventForGesture( 291 bool GestureRecognizerImpl::ProcessTouchEventPreDispatch(
292 const TouchEvent& event,
293 GestureConsumer* consumer) {
294 SetupTargets(event, consumer);
295
296 // If we aren't using the unified GR, we definitely want to dispatch the
297 // event.
298 if (!ui::IsUnifiedGestureDetectorEnabled())
299 return true;
300
301 if (event.result() & ER_CONSUMED)
302 return false;
303
304 GestureProviderAura* gesture_provider =
305 GetGestureProviderForConsumer(consumer);
306 return gesture_provider->OnTouchEvent(event);
307 }
308
309 GestureRecognizer::Gestures*
310 GestureRecognizerImpl::ProcessTouchEventPostDispatch(
292 const TouchEvent& event, 311 const TouchEvent& event,
293 ui::EventResult result, 312 ui::EventResult result,
294 GestureConsumer* target) { 313 GestureConsumer* consumer) {
295 SetupTargets(event, target); 314 if (ui::IsUnifiedGestureDetectorEnabled()) {
296 315 GestureProviderAura* gesture_provider =
297 if (!use_unified_gesture_detector_) { 316 GetGestureProviderForConsumer(consumer);
298 GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(target); 317 gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
318 return gesture_provider->GetAndResetPendingGestures();
319 } else {
320 GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(consumer);
299 return gesture_sequence->ProcessTouchEventForGesture(event, result); 321 return gesture_sequence->ProcessTouchEventForGesture(event, result);
300 } else {
301 GestureProviderAura* gesture_provider =
302 GetGestureProviderForConsumer(target);
303 // TODO(tdresser) - detect gestures eagerly.
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;
311 } 322 }
312 } 323 }
313 324
325 GestureRecognizer::Gestures* GestureRecognizerImpl::ProcessTouchEventOnAsyncAck(
326 const TouchEvent& event,
327 ui::EventResult result,
328 GestureConsumer* consumer) {
329 if (ui::IsUnifiedGestureDetectorEnabled()) {
330 if (result & ui::ER_CONSUMED)
331 return NULL;
332 GestureProviderAura* gesture_provider =
333 GetGestureProviderForConsumer(consumer);
334 gesture_provider->OnTouchEventAck(result != ER_UNHANDLED);
335 return gesture_provider->GetAndResetPendingGestures();
336 } else {
337 GestureSequence* gesture_sequence = GetGestureSequenceForConsumer(consumer);
338 return gesture_sequence->ProcessTouchEventForGesture(event, result);
339 }
340 }
341
314 bool GestureRecognizerImpl::CleanupStateForConsumer( 342 bool GestureRecognizerImpl::CleanupStateForConsumer(
315 GestureConsumer* consumer) { 343 GestureConsumer* consumer) {
316 bool state_cleaned_up = false; 344 bool state_cleaned_up = false;
317 345
318 if (!use_unified_gesture_detector_) { 346 if (!use_unified_gesture_detector_) {
319 if (consumer_sequence_.count(consumer)) { 347 if (consumer_sequence_.count(consumer)) {
320 state_cleaned_up = true; 348 state_cleaned_up = true;
321 delete consumer_sequence_[consumer]; 349 delete consumer_sequence_[consumer];
322 consumer_sequence_.erase(consumer); 350 consumer_sequence_.erase(consumer);
323 } 351 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 std::vector<GestureEventHelper*>::iterator it; 420 std::vector<GestureEventHelper*>::iterator it;
393 for (it = helpers.begin(); it != helpers.end(); ++it) 421 for (it = helpers.begin(); it != helpers.end(); ++it)
394 gesture_recognizer->AddGestureEventHelper(*it); 422 gesture_recognizer->AddGestureEventHelper(*it);
395 423
396 helpers.clear(); 424 helpers.clear();
397 g_gesture_recognizer_instance = 425 g_gesture_recognizer_instance =
398 static_cast<GestureRecognizerImpl*>(gesture_recognizer); 426 static_cast<GestureRecognizerImpl*>(gesture_recognizer);
399 } 427 }
400 428
401 } // namespace ui 429 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/gestures/gesture_recognizer_impl.h ('k') | ui/events/gestures/gesture_recognizer_impl_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698