Index: ui/base/gestures/gesture_sequence.cc |
diff --git a/ui/base/gestures/gesture_sequence.cc b/ui/base/gestures/gesture_sequence.cc |
index ea6c9cdf969ce8f74d0f324189f2a2690904610e..f29e2446b3239b968ee2bcbe8f67404e79ec894f 100644 |
--- a/ui/base/gestures/gesture_sequence.cc |
+++ b/ui/base/gestures/gesture_sequence.cc |
@@ -82,6 +82,9 @@ enum EdgeStateSignatureType { |
GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED = |
G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
+ GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED = |
+ G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_RELEASED, TSI_PROCESSED), |
+ |
// Ignore processed touch-move events until gesture-scroll starts. |
GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED = |
G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_MOVED, TSI_NOT_PROCESSED), |
@@ -90,20 +93,20 @@ enum EdgeStateSignatureType { |
G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_STATIONARY, TSI_NOT_PROCESSED), |
GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED = |
- G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PENDING_SYNTHETIC_CLICK, 0, TS_CANCELLED, TSI_ALWAYS), |
GST_PENDING_SYNTHETIC_CLICK_SECOND_PRESSED = |
G(GS_PENDING_SYNTHETIC_CLICK, 1, TS_PRESSED, TSI_NOT_PROCESSED), |
GST_SCROLL_FIRST_RELEASED = |
- G(GS_SCROLL, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_SCROLL, 0, TS_RELEASED, TSI_ALWAYS), |
// Once scroll has started, process all touch-move events. |
GST_SCROLL_FIRST_MOVED = |
G(GS_SCROLL, 0, TS_MOVED, TSI_ALWAYS), |
GST_SCROLL_FIRST_CANCELLED = |
- G(GS_SCROLL, 0, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_SCROLL, 0, TS_CANCELLED, TSI_ALWAYS), |
GST_SCROLL_SECOND_PRESSED = |
G(GS_SCROLL, 1, TS_PRESSED, TSI_NOT_PROCESSED), |
@@ -111,9 +114,15 @@ enum EdgeStateSignatureType { |
GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED = |
G(GS_PENDING_TWO_FINGER_TAP, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
+ GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED = |
+ G(GS_PENDING_TWO_FINGER_TAP, 0, TS_RELEASED, TSI_PROCESSED), |
+ |
GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED = |
G(GS_PENDING_TWO_FINGER_TAP, 1, TS_RELEASED, TSI_NOT_PROCESSED), |
+ GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED = |
+ G(GS_PENDING_TWO_FINGER_TAP, 1, TS_RELEASED, TSI_PROCESSED), |
+ |
GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED = |
G(GS_PENDING_TWO_FINGER_TAP, 0, TS_MOVED, TSI_ALWAYS), |
@@ -121,10 +130,10 @@ enum EdgeStateSignatureType { |
G(GS_PENDING_TWO_FINGER_TAP, 1, TS_MOVED, TSI_ALWAYS), |
GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED = |
- G(GS_PENDING_TWO_FINGER_TAP, 0, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PENDING_TWO_FINGER_TAP, 0, TS_CANCELLED, TSI_ALWAYS), |
GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED = |
- G(GS_PENDING_TWO_FINGER_TAP, 1, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PENDING_TWO_FINGER_TAP, 1, TS_CANCELLED, TSI_ALWAYS), |
GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED = |
G(GS_PENDING_TWO_FINGER_TAP, 2, TS_PRESSED, TSI_NOT_PROCESSED), |
@@ -136,16 +145,16 @@ enum EdgeStateSignatureType { |
G(GS_PINCH, 1, TS_MOVED, TSI_ALWAYS), |
GST_PINCH_FIRST_RELEASED = |
- G(GS_PINCH, 0, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 0, TS_RELEASED, TSI_ALWAYS), |
GST_PINCH_SECOND_RELEASED = |
- G(GS_PINCH, 1, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 1, TS_RELEASED, TSI_ALWAYS), |
GST_PINCH_FIRST_CANCELLED = |
- G(GS_PINCH, 0, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 0, TS_CANCELLED, TSI_ALWAYS), |
GST_PINCH_SECOND_CANCELLED = |
- G(GS_PINCH, 1, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 1, TS_CANCELLED, TSI_ALWAYS), |
GST_PINCH_THIRD_PRESSED = |
G(GS_PINCH, 2, TS_PRESSED, TSI_NOT_PROCESSED), |
@@ -154,10 +163,10 @@ enum EdgeStateSignatureType { |
G(GS_PINCH, 2, TS_MOVED, TSI_ALWAYS), |
GST_PINCH_THIRD_RELEASED = |
- G(GS_PINCH, 2, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 2, TS_RELEASED, TSI_ALWAYS), |
GST_PINCH_THIRD_CANCELLED = |
- G(GS_PINCH, 2, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 2, TS_CANCELLED, TSI_ALWAYS), |
GST_PINCH_FOURTH_PRESSED = |
G(GS_PINCH, 3, TS_PRESSED, TSI_NOT_PROCESSED), |
@@ -166,10 +175,10 @@ enum EdgeStateSignatureType { |
G(GS_PINCH, 3, TS_MOVED, TSI_ALWAYS), |
GST_PINCH_FOURTH_RELEASED = |
- G(GS_PINCH, 3, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 3, TS_RELEASED, TSI_ALWAYS), |
GST_PINCH_FOURTH_CANCELLED = |
- G(GS_PINCH, 3, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 3, TS_CANCELLED, TSI_ALWAYS), |
GST_PINCH_FIFTH_PRESSED = |
G(GS_PINCH, 4, TS_PRESSED, TSI_NOT_PROCESSED), |
@@ -178,10 +187,10 @@ enum EdgeStateSignatureType { |
G(GS_PINCH, 4, TS_MOVED, TSI_ALWAYS), |
GST_PINCH_FIFTH_RELEASED = |
- G(GS_PINCH, 4, TS_RELEASED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 4, TS_RELEASED, TSI_ALWAYS), |
GST_PINCH_FIFTH_CANCELLED = |
- G(GS_PINCH, 4, TS_CANCELLED, TSI_NOT_PROCESSED), |
+ G(GS_PINCH, 4, TS_CANCELLED, TSI_ALWAYS), |
}; |
// Builds a signature. Signatures are assembled by joining together |
@@ -203,6 +212,7 @@ EdgeStateSignatureType Signature(GestureState gesture_state, |
switch (signature) { |
case GST_NO_GESTURE_FIRST_PRESSED: |
case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED: |
+ case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: |
case GST_PENDING_SYNTHETIC_CLICK_FIRST_MOVED: |
case GST_PENDING_SYNTHETIC_CLICK_FIRST_STATIONARY: |
case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: |
@@ -212,7 +222,9 @@ EdgeStateSignatureType Signature(GestureState gesture_state, |
case GST_SCROLL_FIRST_CANCELLED: |
case GST_SCROLL_SECOND_PRESSED: |
case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: |
+ case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED: |
case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: |
+ case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED: |
case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: |
case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: |
case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: |
@@ -356,6 +368,7 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture( |
point.UpdateForScroll(); |
} |
break; |
+ case GST_PENDING_SYNTHETIC_CLICK_FIRST_RELEASED_HANDLED: |
case GST_PENDING_SYNTHETIC_CLICK_FIRST_CANCELLED: |
set_state(GS_NO_GESTURE); |
break; |
@@ -391,6 +404,8 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture( |
if (TwoFingerTouchMove(event, point, gestures.get())) |
set_state(GS_PINCH); |
break; |
+ case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED: |
+ case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED: |
case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: |
case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: |
scroll_type_ = ST_FREE; |