summaryrefslogtreecommitdiffstats
path: root/ui/views/widget/root_view.cc
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-25 19:50:12 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-25 19:50:12 +0000
commit39837b0d27cf6200d872a8cd859d87e833d76871 (patch)
tree269c7fefa4d063dfa7c10dbbe57bfd7d39f8086d /ui/views/widget/root_view.cc
parentddf8a48540c0fa3279fe88d47dd7ee3ed090bfd4 (diff)
downloadchromium_src-39837b0d27cf6200d872a8cd859d87e833d76871.zip
chromium_src-39837b0d27cf6200d872a8cd859d87e833d76871.tar.gz
chromium_src-39837b0d27cf6200d872a8cd859d87e833d76871.tar.bz2
views: Reset the capture-view at the end of a gesture.
If the gesture handler was capturing events, then stop capturing at the end of the gesture sequence. This fixes selecting tabs with mouse-clicks after taps. BUG=151550 Review URL: https://codereview.chromium.org/10983008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158635 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/widget/root_view.cc')
-rw-r--r--ui/views/widget/root_view.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc
index 2dd5446..2db6cb1 100644
--- a/ui/views/widget/root_view.cc
+++ b/ui/views/widget/root_view.cc
@@ -469,8 +469,14 @@ ui::EventResult RootView::OnGestureEvent(const ui::GestureEvent& event) {
ui::EventResult status = handler->ProcessGestureEvent(handler_event);
if (event.type() == ui::ET_GESTURE_END &&
- event.details().touch_points() <= 1)
- gesture_handler_ = NULL;
+ event.details().touch_points() <= 1) {
+ // In case a drag was in progress, reset all the handlers. Otherwise, just
+ // reset the gesture handler.
+ if (gesture_handler_ == mouse_pressed_handler_)
+ SetMouseHandler(NULL);
+ else
+ gesture_handler_ = NULL;
+ }
if (scroll_gesture_handler_ && (event.type() == ui::ET_GESTURE_SCROLL_END ||
event.type() == ui::ET_SCROLL_FLING_START))