Index: ui/views/controls/menu/menu_host_root_view.cc |
diff --git a/ui/views/controls/menu/menu_host_root_view.cc b/ui/views/controls/menu/menu_host_root_view.cc |
index a46b81b8327e1e10a37ab657eaa8eddefb515e24..1bc834a0098e5edb1a1fa41a163dd06712bfe7a6 100644 |
--- a/ui/views/controls/menu/menu_host_root_view.cc |
+++ b/ui/views/controls/menu/menu_host_root_view.cc |
@@ -55,21 +55,15 @@ bool MenuHostRootView::OnMouseWheel(const ui::MouseWheelEvent& event) { |
GetMenuController()->OnMouseWheel(submenu_, event); |
} |
-ui::EventDispatchDetails MenuHostRootView::OnEventFromSource(ui::Event* event) { |
- ui::EventDispatchDetails result = RootView::OnEventFromSource(event); |
- |
- if (event->IsGestureEvent()) { |
- ui::GestureEvent* gesture_event = event->AsGestureEvent(); |
- if (gesture_event->handled()) |
- return result; |
- // ChromeOS uses MenuController to forward events like other |
- // mouse events. |
- if (!GetMenuController()) |
- return result; |
- GetMenuController()->OnGestureEvent(submenu_, gesture_event); |
- } |
- |
- return result; |
+void MenuHostRootView::OnEventProcessingFinished(ui::Event* event) { |
+ RootView::OnEventProcessingFinished(event); |
+ |
+ // Forward unhandled gesture events to our menu controller. |
+ // TODO(tdanderson): Investigate whether this should be moved into a |
+ // post-target handler installed on |this| instead |
+ // (invoked only if event->target() == this). |
+ if (event->IsGestureEvent() && !event->handled() && GetMenuController()) |
+ GetMenuController()->OnGestureEvent(submenu_, event->AsGestureEvent()); |
} |
MenuController* MenuHostRootView::GetMenuController() { |