OLD | NEW |
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/base/gestures/gesture_sequence.h" | 5 #include "ui/base/gestures/gesture_sequence.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 75 |
76 enum EdgeStateSignatureType { | 76 enum EdgeStateSignatureType { |
77 GST_INVALID = -1, | 77 GST_INVALID = -1, |
78 | 78 |
79 GST_NO_GESTURE_FIRST_PRESSED = | 79 GST_NO_GESTURE_FIRST_PRESSED = |
80 G(GS_NO_GESTURE, 0, TS_PRESSED, TSI_NOT_PROCESSED), | 80 G(GS_NO_GESTURE, 0, TS_PRESSED, TSI_NOT_PROCESSED), |
81 | 81 |
82 GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED = | 82 GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED = |
83 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_NOT_PROCESSED), | 83 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
84 | 84 |
| 85 GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED = |
| 86 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_PROCESSED), |
| 87 |
85 // Ignore processed touch-move events until gesture-scroll starts. | 88 // Ignore processed touch-move events until gesture-scroll starts. |
86 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED = | 89 GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED = |
87 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_NOT_PROCESSED), | 90 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_NOT_PROCESSED), |
88 | 91 |
89 GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY = | 92 GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY = |
90 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_STATIONARY, TSI_NOT_PROCESSED), | 93 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_STATIONARY, TSI_NOT_PROCESSED), |
91 | 94 |
92 GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED = | 95 GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED = |
93 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_NOT_PROCESSED), | 96 G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_ALWAYS), |
94 | 97 |
95 GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED = | 98 GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED = |
96 G(GS_PENDING_SYNTHETIC_CLICK, 1, TS_PRESSED, TSI_NOT_PROCESSED), | 99 G(GS_PENDING_SYNTHETIC_CLICK, 1, TS_PRESSED, TSI_NOT_PROCESSED), |
97 | 100 |
98 GST_SCROLL_FIRST_RELEASED = | 101 GST_SCROLL_FIRST_RELEASED = |
99 G(GS_SCROLL, 0, TS_RELEASED, TSI_NOT_PROCESSED), | 102 G(GS_SCROLL, 0, TS_RELEASED, TSI_ALWAYS), |
100 | 103 |
101 // Once scroll has started, process all touch-move events. | 104 // Once scroll has started, process all touch-move events. |
102 GST_SCROLL_FIRST_MOVED = | 105 GST_SCROLL_FIRST_MOVED = |
103 G(GS_SCROLL, 0, TS_MOVED, TSI_ALWAYS), | 106 G(GS_SCROLL, 0, TS_MOVED, TSI_ALWAYS), |
104 | 107 |
105 GST_SCROLL_FIRST_CANCELLED = | 108 GST_SCROLL_FIRST_CANCELLED = |
106 G(GS_SCROLL, 0, TS_CANCELLED, TSI_NOT_PROCESSED), | 109 G(GS_SCROLL, 0, TS_CANCELLED, TSI_ALWAYS), |
107 | 110 |
108 GST_SCROLL_SECOND_PRESSED = | 111 GST_SCROLL_SECOND_PRESSED = |
109 G(GS_SCROLL, 1, TS_PRESSED, TSI_NOT_PROCESSED), | 112 G(GS_SCROLL, 1, TS_PRESSED, TSI_NOT_PROCESSED), |
110 | 113 |
111 GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED = | 114 GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED = |
112 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_RELEASED, TSI_NOT_PROCESSED), | 115 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
113 | 116 |
| 117 GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED = |
| 118 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_RELEASED, TSI_PROCESSED), |
| 119 |
114 GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED = | 120 GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED = |
115 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_RELEASED, TSI_NOT_PROCESSED), | 121 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_RELEASED, TSI_NOT_PROCESSED), |
116 | 122 |
| 123 GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED = |
| 124 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_RELEASED, TSI_PROCESSED), |
| 125 |
117 GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED = | 126 GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED = |
118 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_MOVED, TSI_ALWAYS), | 127 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_MOVED, TSI_ALWAYS), |
119 | 128 |
120 GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED = | 129 GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED = |
121 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_MOVED, TSI_ALWAYS), | 130 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_MOVED, TSI_ALWAYS), |
122 | 131 |
123 GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED = | 132 GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED = |
124 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_CANCELLED, TSI_NOT_PROCESSED), | 133 G(GS_PENDING_TWO_FINGER_TAP, 0, TS_CANCELLED, TSI_ALWAYS), |
125 | 134 |
126 GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED = | 135 GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED = |
127 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_CANCELLED, TSI_NOT_PROCESSED), | 136 G(GS_PENDING_TWO_FINGER_TAP, 1, TS_CANCELLED, TSI_ALWAYS), |
128 | 137 |
129 GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED = | 138 GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED = |
130 G(GS_PENDING_TWO_FINGER_TAP, 2, TS_PRESSED, TSI_NOT_PROCESSED), | 139 G(GS_PENDING_TWO_FINGER_TAP, 2, TS_PRESSED, TSI_NOT_PROCESSED), |
131 | 140 |
132 GST_PINCH_FIRST_MOVED = | 141 GST_PINCH_FIRST_MOVED = |
133 G(GS_PINCH, 0, TS_MOVED, TSI_ALWAYS), | 142 G(GS_PINCH, 0, TS_MOVED, TSI_ALWAYS), |
134 | 143 |
135 GST_PINCH_SECOND_MOVED = | 144 GST_PINCH_SECOND_MOVED = |
136 G(GS_PINCH, 1, TS_MOVED, TSI_ALWAYS), | 145 G(GS_PINCH, 1, TS_MOVED, TSI_ALWAYS), |
137 | 146 |
138 GST_PINCH_FIRST_RELEASED = | 147 GST_PINCH_FIRST_RELEASED = |
139 G(GS_PINCH, 0, TS_RELEASED, TSI_NOT_PROCESSED), | 148 G(GS_PINCH, 0, TS_RELEASED, TSI_ALWAYS), |
140 | 149 |
141 GST_PINCH_SECOND_RELEASED = | 150 GST_PINCH_SECOND_RELEASED = |
142 G(GS_PINCH, 1, TS_RELEASED, TSI_NOT_PROCESSED), | 151 G(GS_PINCH, 1, TS_RELEASED, TSI_ALWAYS), |
143 | 152 |
144 GST_PINCH_FIRST_CANCELLED = | 153 GST_PINCH_FIRST_CANCELLED = |
145 G(GS_PINCH, 0, TS_CANCELLED, TSI_NOT_PROCESSED), | 154 G(GS_PINCH, 0, TS_CANCELLED, TSI_ALWAYS), |
146 | 155 |
147 GST_PINCH_SECOND_CANCELLED = | 156 GST_PINCH_SECOND_CANCELLED = |
148 G(GS_PINCH, 1, TS_CANCELLED, TSI_NOT_PROCESSED), | 157 G(GS_PINCH, 1, TS_CANCELLED, TSI_ALWAYS), |
149 | 158 |
150 GST_PINCH_THIRD_PRESSED = | 159 GST_PINCH_THIRD_PRESSED = |
151 G(GS_PINCH, 2, TS_PRESSED, TSI_NOT_PROCESSED), | 160 G(GS_PINCH, 2, TS_PRESSED, TSI_NOT_PROCESSED), |
152 | 161 |
153 GST_PINCH_THIRD_MOVED = | 162 GST_PINCH_THIRD_MOVED = |
154 G(GS_PINCH, 2, TS_MOVED, TSI_ALWAYS), | 163 G(GS_PINCH, 2, TS_MOVED, TSI_ALWAYS), |
155 | 164 |
156 GST_PINCH_THIRD_RELEASED = | 165 GST_PINCH_THIRD_RELEASED = |
157 G(GS_PINCH, 2, TS_RELEASED, TSI_NOT_PROCESSED), | 166 G(GS_PINCH, 2, TS_RELEASED, TSI_ALWAYS), |
158 | 167 |
159 GST_PINCH_THIRD_CANCELLED = | 168 GST_PINCH_THIRD_CANCELLED = |
160 G(GS_PINCH, 2, TS_CANCELLED, TSI_NOT_PROCESSED), | 169 G(GS_PINCH, 2, TS_CANCELLED, TSI_ALWAYS), |
161 | 170 |
162 GST_PINCH_FOURTH_PRESSED = | 171 GST_PINCH_FOURTH_PRESSED = |
163 G(GS_PINCH, 3, TS_PRESSED, TSI_NOT_PROCESSED), | 172 G(GS_PINCH, 3, TS_PRESSED, TSI_NOT_PROCESSED), |
164 | 173 |
165 GST_PINCH_FOURTH_MOVED = | 174 GST_PINCH_FOURTH_MOVED = |
166 G(GS_PINCH, 3, TS_MOVED, TSI_ALWAYS), | 175 G(GS_PINCH, 3, TS_MOVED, TSI_ALWAYS), |
167 | 176 |
168 GST_PINCH_FOURTH_RELEASED = | 177 GST_PINCH_FOURTH_RELEASED = |
169 G(GS_PINCH, 3, TS_RELEASED, TSI_NOT_PROCESSED), | 178 G(GS_PINCH, 3, TS_RELEASED, TSI_ALWAYS), |
170 | 179 |
171 GST_PINCH_FOURTH_CANCELLED = | 180 GST_PINCH_FOURTH_CANCELLED = |
172 G(GS_PINCH, 3, TS_CANCELLED, TSI_NOT_PROCESSED), | 181 G(GS_PINCH, 3, TS_CANCELLED, TSI_ALWAYS), |
173 | 182 |
174 GST_PINCH_FIFTH_PRESSED = | 183 GST_PINCH_FIFTH_PRESSED = |
175 G(GS_PINCH, 4, TS_PRESSED, TSI_NOT_PROCESSED), | 184 G(GS_PINCH, 4, TS_PRESSED, TSI_NOT_PROCESSED), |
176 | 185 |
177 GST_PINCH_FIFTH_MOVED = | 186 GST_PINCH_FIFTH_MOVED = |
178 G(GS_PINCH, 4, TS_MOVED, TSI_ALWAYS), | 187 G(GS_PINCH, 4, TS_MOVED, TSI_ALWAYS), |
179 | 188 |
180 GST_PINCH_FIFTH_RELEASED = | 189 GST_PINCH_FIFTH_RELEASED = |
181 G(GS_PINCH, 4, TS_RELEASED, TSI_NOT_PROCESSED), | 190 G(GS_PINCH, 4, TS_RELEASED, TSI_ALWAYS), |
182 | 191 |
183 GST_PINCH_FIFTH_CANCELLED = | 192 GST_PINCH_FIFTH_CANCELLED = |
184 G(GS_PINCH, 4, TS_CANCELLED, TSI_NOT_PROCESSED), | 193 G(GS_PINCH, 4, TS_CANCELLED, TSI_ALWAYS), |
185 }; | 194 }; |
186 | 195 |
187 // Builds a signature. Signatures are assembled by joining together | 196 // Builds a signature. Signatures are assembled by joining together |
188 // multiple bits. | 197 // multiple bits. |
189 // 1 LSB bit so that the computed signature is always greater than 0 | 198 // 1 LSB bit so that the computed signature is always greater than 0 |
190 // 3 bits for the |type|. | 199 // 3 bits for the |type|. |
191 // 2 bit for |touch_status| | 200 // 2 bit for |touch_status| |
192 // 12 bits for |touch_id| | 201 // 12 bits for |touch_id| |
193 // 14 bits for the |gesture_state|. | 202 // 14 bits for the |gesture_state|. |
194 EdgeStateSignatureType Signature(GestureState gesture_state, | 203 EdgeStateSignatureType Signature(GestureState gesture_state, |
195 unsigned int touch_id, | 204 unsigned int touch_id, |
196 ui::EventType type, | 205 ui::EventType type, |
197 TouchStatusInternal touch_status) { | 206 TouchStatusInternal touch_status) { |
198 CHECK((touch_id & 0xfff) == touch_id); | 207 CHECK((touch_id & 0xfff) == touch_id); |
199 TouchState touch_state = TouchEventTypeToTouchState(type); | 208 TouchState touch_state = TouchEventTypeToTouchState(type); |
200 EdgeStateSignatureType signature = static_cast<EdgeStateSignatureType> | 209 EdgeStateSignatureType signature = static_cast<EdgeStateSignatureType> |
201 (G(gesture_state, touch_id, touch_state, touch_status)); | 210 (G(gesture_state, touch_id, touch_state, touch_status)); |
202 | 211 |
203 switch (signature) { | 212 switch (signature) { |
204 case GST_NO_GESTURE_FIRST_PRESSED: | 213 case GST_NO_GESTURE_FIRST_PRESSED: |
205 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED: | 214 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED: |
| 215 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: |
206 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: | 216 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: |
207 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY: | 217 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY: |
208 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: | 218 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: |
209 case GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED: | 219 case GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED: |
210 case GST_SCROLL_FIRST_RELEASED: | 220 case GST_SCROLL_FIRST_RELEASED: |
211 case GST_SCROLL_FIRST_MOVED: | 221 case GST_SCROLL_FIRST_MOVED: |
212 case GST_SCROLL_FIRST_CANCELLED: | 222 case GST_SCROLL_FIRST_CANCELLED: |
213 case GST_SCROLL_SECOND_PRESSED: | 223 case GST_SCROLL_SECOND_PRESSED: |
214 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: | 224 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: |
| 225 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED: |
215 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: | 226 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: |
| 227 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED: |
216 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: | 228 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: |
217 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: | 229 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: |
218 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: | 230 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: |
219 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: | 231 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: |
220 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED: | 232 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED: |
221 case GST_PINCH_FIRST_MOVED: | 233 case GST_PINCH_FIRST_MOVED: |
222 case GST_PINCH_SECOND_MOVED: | 234 case GST_PINCH_SECOND_MOVED: |
223 case GST_PINCH_FIRST_RELEASED: | 235 case GST_PINCH_FIRST_RELEASED: |
224 case GST_PINCH_SECOND_RELEASED: | 236 case GST_PINCH_SECOND_RELEASED: |
225 case GST_PINCH_FIRST_CANCELLED: | 237 case GST_PINCH_FIRST_CANCELLED: |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 set_state(GS_NO_GESTURE); | 361 set_state(GS_NO_GESTURE); |
350 break; | 362 break; |
351 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: | 363 case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: |
352 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY: | 364 case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY: |
353 if (ScrollStart(event, point, gestures.get())) { | 365 if (ScrollStart(event, point, gestures.get())) { |
354 set_state(GS_SCROLL); | 366 set_state(GS_SCROLL); |
355 if (ScrollUpdate(event, point, gestures.get())) | 367 if (ScrollUpdate(event, point, gestures.get())) |
356 point.UpdateForScroll(); | 368 point.UpdateForScroll(); |
357 } | 369 } |
358 break; | 370 break; |
| 371 case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: |
359 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: | 372 case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: |
360 set_state(GS_NO_GESTURE); | 373 set_state(GS_NO_GESTURE); |
361 break; | 374 break; |
362 case GST_SCROLL_FIRST_MOVED: | 375 case GST_SCROLL_FIRST_MOVED: |
363 if (scroll_type_ == ST_VERTICAL || | 376 if (scroll_type_ == ST_VERTICAL || |
364 scroll_type_ == ST_HORIZONTAL) | 377 scroll_type_ == ST_HORIZONTAL) |
365 BreakRailScroll(event, point, gestures.get()); | 378 BreakRailScroll(event, point, gestures.get()); |
366 if (ScrollUpdate(event, point, gestures.get())) | 379 if (ScrollUpdate(event, point, gestures.get())) |
367 point.UpdateForScroll(); | 380 point.UpdateForScroll(); |
368 break; | 381 break; |
(...skipping 15 matching lines...) Expand all Loading... |
384 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: | 397 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: |
385 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: | 398 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: |
386 TwoFingerTouchReleased(event, point, gestures.get()); | 399 TwoFingerTouchReleased(event, point, gestures.get()); |
387 set_state(GS_SCROLL); | 400 set_state(GS_SCROLL); |
388 break; | 401 break; |
389 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: | 402 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: |
390 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: | 403 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: |
391 if (TwoFingerTouchMove(event, point, gestures.get())) | 404 if (TwoFingerTouchMove(event, point, gestures.get())) |
392 set_state(GS_PINCH); | 405 set_state(GS_PINCH); |
393 break; | 406 break; |
| 407 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED: |
| 408 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED: |
394 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: | 409 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: |
395 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: | 410 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: |
396 scroll_type_ = ST_FREE; | 411 scroll_type_ = ST_FREE; |
397 set_state(GS_SCROLL); | 412 set_state(GS_SCROLL); |
398 break; | 413 break; |
399 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED: | 414 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED: |
400 PinchStart(event, point, gestures.get()); | 415 PinchStart(event, point, gestures.get()); |
401 set_state(GS_PINCH); | 416 set_state(GS_PINCH); |
402 break; | 417 break; |
403 case GST_PINCH_FIRST_MOVED: | 418 case GST_PINCH_FIRST_MOVED: |
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 return; | 1032 return; |
1018 | 1033 |
1019 // Since long press timer has been started, there should be a non-NULL point. | 1034 // Since long press timer has been started, there should be a non-NULL point. |
1020 const GesturePoint* point = GetPointByPointId(0); | 1035 const GesturePoint* point = GetPointByPointId(0); |
1021 if (!ui::gestures::IsInsideManhattanSquare(point->first_touch_position(), | 1036 if (!ui::gestures::IsInsideManhattanSquare(point->first_touch_position(), |
1022 event.location())) | 1037 event.location())) |
1023 long_press_timer_->Stop(); | 1038 long_press_timer_->Stop(); |
1024 } | 1039 } |
1025 | 1040 |
1026 } // namespace ui | 1041 } // namespace ui |
OLD | NEW |