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

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

Issue 268483004: events: Remove stationary touch-event type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
« no previous file with comments | « ui/events/event_constants.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_sequence.h" 5 #include "ui/events/gestures/gesture_sequence.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 10
(...skipping 11 matching lines...) Expand all
22 namespace ui { 22 namespace ui {
23 23
24 namespace { 24 namespace {
25 25
26 // ui::EventType is mapped to TouchState so it can fit into 3 bits of 26 // ui::EventType is mapped to TouchState so it can fit into 3 bits of
27 // Signature. 27 // Signature.
28 enum TouchState { 28 enum TouchState {
29 TS_RELEASED, 29 TS_RELEASED,
30 TS_PRESSED, 30 TS_PRESSED,
31 TS_MOVED, 31 TS_MOVED,
32 TS_STATIONARY,
33 TS_CANCELLED, 32 TS_CANCELLED,
34 TS_UNKNOWN, 33 TS_UNKNOWN,
35 }; 34 };
36 35
37 // ui::EventResult is mapped to TouchStatusInternal to simply indicate whether a 36 // ui::EventResult is mapped to TouchStatusInternal to simply indicate whether a
38 // processed touch-event should affect gesture-recognition or not. 37 // processed touch-event should affect gesture-recognition or not.
39 enum TouchStatusInternal { 38 enum TouchStatusInternal {
40 TSI_NOT_PROCESSED, // The touch-event should take-part into 39 TSI_NOT_PROCESSED, // The touch-event should take-part into
41 // gesture-recognition only if the touch-event has not 40 // gesture-recognition only if the touch-event has not
42 // been processed. 41 // been processed.
(...skipping 10 matching lines...) Expand all
53 52
54 // Get equivalent TouchState from EventType |type|. 53 // Get equivalent TouchState from EventType |type|.
55 TouchState TouchEventTypeToTouchState(ui::EventType type) { 54 TouchState TouchEventTypeToTouchState(ui::EventType type) {
56 switch (type) { 55 switch (type) {
57 case ui::ET_TOUCH_RELEASED: 56 case ui::ET_TOUCH_RELEASED:
58 return TS_RELEASED; 57 return TS_RELEASED;
59 case ui::ET_TOUCH_PRESSED: 58 case ui::ET_TOUCH_PRESSED:
60 return TS_PRESSED; 59 return TS_PRESSED;
61 case ui::ET_TOUCH_MOVED: 60 case ui::ET_TOUCH_MOVED:
62 return TS_MOVED; 61 return TS_MOVED;
63 case ui::ET_TOUCH_STATIONARY:
64 return TS_STATIONARY;
65 case ui::ET_TOUCH_CANCELLED: 62 case ui::ET_TOUCH_CANCELLED:
66 return TS_CANCELLED; 63 return TS_CANCELLED;
67 default: 64 default:
68 DVLOG(1) << "Unknown Touch Event type"; 65 DVLOG(1) << "Unknown Touch Event type";
69 } 66 }
70 return TS_UNKNOWN; 67 return TS_UNKNOWN;
71 } 68 }
72 69
73 // Gesture signature types for different values of combination (GestureState, 70 // Gesture signature types for different values of combination (GestureState,
74 // touch_id, ui::EventType, touch_handled), see Signature for more info. 71 // touch_id, ui::EventType, touch_handled), see Signature for more info.
(...skipping 17 matching lines...) Expand all
92 GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED = 89 GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED =
93 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_PROCESSED), 90 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_PROCESSED),
94 91
95 // Ignore processed touch-move events until gesture-scroll starts. 92 // Ignore processed touch-move events until gesture-scroll starts.
96 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED = 93 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED =
97 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_NOT_PROCESSED), 94 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_NOT_PROCESSED),
98 95
99 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED = 96 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED =
100 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_PROCESSED), 97 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_PROCESSED),
101 98
102 GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY =
103 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_STATIONARY, TSI_NOT_PROCESSED),
104
105 GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED = 99 GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED =
106 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_ALWAYS), 100 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_ALWAYS),
107 101
108 GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED = 102 GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED =
109 G(GS_PENDING_SYNTHETIC_CLICK, 1, TS_PRESSED, TSI_NOT_PROCESSED), 103 G(GS_PENDING_SYNTHETIC_CLICK, 1, TS_PRESSED, TSI_NOT_PROCESSED),
110 104
111 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED = 105 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED =
112 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 106 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL,
113 0, 107 0,
114 TS_RELEASED, 108 TS_RELEASED,
115 TSI_NOT_PROCESSED), 109 TSI_NOT_PROCESSED),
116 110
117 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED = 111 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED =
118 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_RELEASED, TSI_PROCESSED), 112 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_RELEASED, TSI_PROCESSED),
119 113
120 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED = 114 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED =
121 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_MOVED, TSI_ALWAYS), 115 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_MOVED, TSI_ALWAYS),
122 116
123 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_STATIONARY =
124 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_STATIONARY, TSI_ALWAYS),
125
126 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_CANCELLED = 117 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_CANCELLED =
127 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_CANCELLED, TSI_ALWAYS), 118 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 0, TS_CANCELLED, TSI_ALWAYS),
128 119
129 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_SECOND_PRESSED = 120 GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_SECOND_PRESSED =
130 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 1, TS_PRESSED, TSI_NOT_PROCESSED), 121 G(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL, 1, TS_PRESSED, TSI_NOT_PROCESSED),
131 122
132 GST_SYNTHETIC_CLICK_ABORTED_FIRST_RELEASED = 123 GST_SYNTHETIC_CLICK_ABORTED_FIRST_RELEASED =
133 G(GS_SYNTHETIC_CLICK_ABORTED, 0, TS_RELEASED, TSI_ALWAYS), 124 G(GS_SYNTHETIC_CLICK_ABORTED, 0, TS_RELEASED, TSI_ALWAYS),
134 125
135 GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED = 126 GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED =
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 TouchState touch_state = TouchEventTypeToTouchState(type); 325 TouchState touch_state = TouchEventTypeToTouchState(type);
335 EdgeStateSignatureType signature = static_cast<EdgeStateSignatureType> 326 EdgeStateSignatureType signature = static_cast<EdgeStateSignatureType>
336 (G(gesture_state, touch_id, touch_state, touch_status)); 327 (G(gesture_state, touch_id, touch_state, touch_status));
337 328
338 switch (signature) { 329 switch (signature) {
339 case GST_NO_GESTURE_FIRST_PRESSED: 330 case GST_NO_GESTURE_FIRST_PRESSED:
340 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED: 331 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED:
341 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: 332 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED:
342 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: 333 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED:
343 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED: 334 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED:
344 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY:
345 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: 335 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED:
346 case GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED: 336 case GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED:
347 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED: 337 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED:
348 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED: 338 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED:
349 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED: 339 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED:
350 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_STATIONARY:
351 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_CANCELLED: 340 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_CANCELLED:
352 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_SECOND_PRESSED: 341 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_SECOND_PRESSED:
353 case GST_SYNTHETIC_CLICK_ABORTED_FIRST_RELEASED: 342 case GST_SYNTHETIC_CLICK_ABORTED_FIRST_RELEASED:
354 case GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED: 343 case GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED:
355 case GST_SCROLL_FIRST_RELEASED: 344 case GST_SCROLL_FIRST_RELEASED:
356 case GST_SCROLL_FIRST_MOVED: 345 case GST_SCROLL_FIRST_MOVED:
357 case GST_SCROLL_FIRST_MOVED_HANDLED: 346 case GST_SCROLL_FIRST_MOVED_HANDLED:
358 case GST_SCROLL_FIRST_CANCELLED: 347 case GST_SCROLL_FIRST_CANCELLED:
359 case GST_SCROLL_SECOND_PRESSED: 348 case GST_SCROLL_SECOND_PRESSED:
360 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: 349 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED:
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 break; 558 break;
570 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED: 559 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED:
571 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED: 560 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED:
572 if (Click(event, point, gestures.get())) 561 if (Click(event, point, gestures.get()))
573 point.UpdateForTap(); 562 point.UpdateForTap();
574 else 563 else
575 PrependTapCancelGestureEvent(point, gestures.get()); 564 PrependTapCancelGestureEvent(point, gestures.get());
576 set_state(GS_NO_GESTURE); 565 set_state(GS_NO_GESTURE);
577 break; 566 break;
578 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: 567 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED:
579 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY:
580 if (ScrollStart(event, point, gestures.get())) { 568 if (ScrollStart(event, point, gestures.get())) {
581 PrependTapCancelGestureEvent(point, gestures.get()); 569 PrependTapCancelGestureEvent(point, gestures.get());
582 set_state(GS_SCROLL); 570 set_state(GS_SCROLL);
583 if (ScrollUpdate(event, point, gestures.get(), FS_FIRST_SCROLL)) 571 if (ScrollUpdate(event, point, gestures.get(), FS_FIRST_SCROLL))
584 point.UpdateForScroll(); 572 point.UpdateForScroll();
585 } 573 }
586 break; 574 break;
587 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED: 575 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED_PROCESSED:
588 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED: 576 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_MOVED:
589 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_STATIONARY:
590 if (point.IsInScrollWindow(event)) { 577 if (point.IsInScrollWindow(event)) {
591 PrependTapCancelGestureEvent(point, gestures.get()); 578 PrependTapCancelGestureEvent(point, gestures.get());
592 set_state(GS_SYNTHETIC_CLICK_ABORTED); 579 set_state(GS_SYNTHETIC_CLICK_ABORTED);
593 } else { 580 } else {
594 set_state(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL); 581 set_state(GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL);
595 } 582 }
596 break; 583 break;
597 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: 584 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED:
598 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: 585 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED:
599 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED: 586 case GST_PENDING_SYNTHETIC_CLICK_NO_SCROLL_FIRST_RELEASED_HANDLED:
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
1471 } 1458 }
1472 1459
1473 void GestureSequence::StartRailFreeScroll(const GesturePoint& point, 1460 void GestureSequence::StartRailFreeScroll(const GesturePoint& point,
1474 Gestures* gestures) { 1461 Gestures* gestures) {
1475 AppendScrollGestureBegin(point, point.first_touch_position(), gestures); 1462 AppendScrollGestureBegin(point, point.first_touch_position(), gestures);
1476 scroll_type_ = ST_FREE; 1463 scroll_type_ = ST_FREE;
1477 set_state(GS_SCROLL); 1464 set_state(GS_SCROLL);
1478 } 1465 }
1479 1466
1480 } // namespace ui 1467 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/event_constants.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698