Commit 6ace8c4f authored by tdresser@chromium.org's avatar tdresser@chromium.org

Send TapCancel when a second finger is pressed.

This is required to stop the long press affordance on Aura.

BUG=371460

Review URL: https://codereview.chromium.org/280593003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270132 0039d316-1c4b-4281-b951-d872f2087c98
parent 4faadfc4
......@@ -215,6 +215,8 @@ void TouchDispositionGestureFilter::FilterAndSendPacket(
CancelTapIfNecessary();
EndScrollIfNecessary();
CancelFlingIfNecessary();
} else if (packet.gesture_source() == GestureEventDataPacket::TOUCH_START) {
CancelTapIfNecessary();
}
for (size_t i = 0; i < packet.gesture_count(); ++i) {
......@@ -264,6 +266,7 @@ void TouchDispositionGestureFilter::SendGesture(const GestureEventData& event) {
needs_show_press_event_ = false;
break;
case ET_GESTURE_TAP:
DCHECK(needs_tap_ending_event_);
if (needs_show_press_event_) {
GestureEventData show_press_event(event);
show_press_event.type = ET_GESTURE_SHOW_PRESS;
......
......@@ -711,21 +711,18 @@ TEST_F(TouchDispositionGestureFilterTest,
TapNotCancelledIfTapEndingEventReceived) {
PushGesture(ET_GESTURE_TAP_DOWN);
PressTouchPoint(1, 1);
PressTouchPoint(2, 2);
SendTouchNotConsumedAck();
SendTouchNotConsumedAck();
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN),
GetAndResetSentGestures()));
EXPECT_TRUE(
GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), GetAndResetSentGestures()));
PushGesture(ET_GESTURE_TAP);
ReleaseTouchPoint();
SendTouchNotConsumedAck();
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS,
ET_GESTURE_TAP),
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS, ET_GESTURE_TAP),
GetAndResetSentGestures()));
// The tap should not be cancelled as it was terminated by a |ET_GESTURE_TAP|.
ReleaseTouchPoint();
PressTouchPoint(2, 2);
SendTouchConsumedAck();
EXPECT_FALSE(GesturesSent());
}
......@@ -1027,4 +1024,17 @@ TEST_F(TouchDispositionGestureFilterTest, TestDisallowedMultiFingerSwipe) {
EXPECT_FALSE(GesturesSent());
}
TEST_F(TouchDispositionGestureFilterTest, TapCancelOnSecondFingerDown) {
PushGesture(ET_GESTURE_TAP_DOWN);
PressTouchPoint(1, 1);
SendTouchNotConsumedAck();
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN),
GetAndResetSentGestures()));
PressTouchPoint(1, 1);
SendTouchNotConsumedAck();
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL),
GetAndResetSentGestures()));
}
} // namespace ui
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment