diff options
author | tdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-17 13:52:45 +0000 |
---|---|---|
committer | tdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-17 13:52:45 +0000 |
commit | 93425b44c4ea18ca58e3f5585d92795628bc5355 (patch) | |
tree | 0d3c398b08ab343ced67a07c48c229b535a8a1ae /ash | |
parent | 1895cda784ed3c8a899379f32b334761d386e6ed (diff) | |
download | chromium_src-93425b44c4ea18ca58e3f5585d92795628bc5355.zip chromium_src-93425b44c4ea18ca58e3f5585d92795628bc5355.tar.gz chromium_src-93425b44c4ea18ca58e3f5585d92795628bc5355.tar.bz2 |
Three Finger Swipe
Implements a three finger swipe gesture event for the aura Gesture Recognizer.
BUG=122807
TEST=SystemGestureEventFilterTest.TapOutsideRootWindow, GestureRecognizerTest.GestureEventThreeFingerSwipe
Review URL: http://codereview.chromium.org/10037012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132570 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/wm/system_gesture_event_filter.cc | 3 | ||||
-rw-r--r-- | ash/wm/system_gesture_event_filter_unittest.cc | 27 |
2 files changed, 29 insertions, 1 deletions
diff --git a/ash/wm/system_gesture_event_filter.cc b/ash/wm/system_gesture_event_filter.cc index 46f2ea17..1568052 100644 --- a/ash/wm/system_gesture_event_filter.cc +++ b/ash/wm/system_gesture_event_filter.cc @@ -37,6 +37,8 @@ ui::TouchStatus SystemGestureEventFilter::PreHandleTouchEvent( ui::GestureStatus SystemGestureEventFilter::PreHandleGestureEvent( aura::Window* target, aura::GestureEvent* event) { // TODO(tdresser) handle system level gesture events + if (event->type() == ui::ET_GESTURE_THREE_FINGER_SWIPE) + return ui::GESTURE_STATUS_CONSUMED; if (target == Shell::GetRootWindow()) return ui::GESTURE_STATUS_CONSUMED; return ui::GESTURE_STATUS_UNKNOWN; @@ -44,4 +46,3 @@ ui::GestureStatus SystemGestureEventFilter::PreHandleGestureEvent( } // namespace internal } // namespace ash - diff --git a/ash/wm/system_gesture_event_filter_unittest.cc b/ash/wm/system_gesture_event_filter_unittest.cc index 35c7596..8e26aec 100644 --- a/ash/wm/system_gesture_event_filter_unittest.cc +++ b/ash/wm/system_gesture_event_filter_unittest.cc @@ -47,4 +47,31 @@ TEST_F(SystemGestureEventFilterTest, TapOutsideRootWindow) { EXPECT_FALSE(consumed); } +// Ensure that a three fingered swipe is consumed by the system event handler. +TEST_F(SystemGestureEventFilterTest, ThreeFingerSwipe) { + aura::RootWindow* root_window = Shell::GetRootWindow(); + + const int kTouchId = 5; + + // Get a target for kTouchId + aura::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(100, 100), kTouchId, + base::Time::NowFromSystemTime() - base::Time()); + root_window->DispatchTouchEvent(&press); + + aura::GestureEvent* event = new aura::GestureEvent( + ui::ET_GESTURE_THREE_FINGER_SWIPE, 0, 0, 0, base::Time::Now(), + 0, 0, 1 << kTouchId); + bool consumed = root_window->DispatchGestureEvent(event); + + EXPECT_TRUE(consumed); + + // The system event filter shouldn't filter out events like tap downs. + aura::GestureEvent* event2 = new aura::GestureEvent( + ui::ET_GESTURE_TAP_DOWN, 0, 0, 0, base::Time::Now(), + 0, 0, 1 << kTouchId); + consumed = root_window->DispatchGestureEvent(event2); + + EXPECT_FALSE(consumed); +} + } // namespace ash |