Index: ui/views/widget/root_view.cc |
diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc |
index 12c2d12cbb37feb7b0a530af2899544f72ae886e..2a71020447a758d17911b55e522cdecbeae00b9b 100644 |
--- a/ui/views/widget/root_view.cc |
+++ b/ui/views/widget/root_view.cc |
@@ -288,6 +288,17 @@ void RootView::DispatchGestureEvent(ui::GestureEvent* event) { |
return; |
} |
+ // If there was no handler for a SCROLL_BEGIN event, then subsequent scroll |
+ // events are not dispatched to any views. |
+ switch (event->type()) { |
+ case ui::ET_GESTURE_SCROLL_UPDATE: |
+ case ui::ET_GESTURE_SCROLL_END: |
+ case ui::ET_SCROLL_FLING_START: |
+ return; |
+ default: |
+ break; |
+ } |
+ |
// Walk up the tree until we find a view that wants the gesture event. |
for (gesture_handler_ = GetEventHandlerForPoint(event->location()); |
gesture_handler_ && (gesture_handler_ != this); |