Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index 7e55fe8dae1bdbd089b28b617d81a48c4536711f..6f0adbc30d5235e1f46698edab97047d22591736 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -9,6 +9,7 @@ |
#include "ash/accelerators/accelerator_controller.h" |
#include "ash/accelerators/accelerator_delegate.h" |
+#include "ash/accelerators/ash_menu_event_filter_delegate.h" |
#include "ash/accelerators/focus_manager_factory.h" |
#include "ash/accelerators/nested_accelerator_delegate.h" |
#include "ash/ash_switches.h" |
@@ -100,6 +101,7 @@ |
#include "ui/keyboard/keyboard_switches.h" |
#include "ui/keyboard/keyboard_util.h" |
#include "ui/message_center/message_center.h" |
+#include "ui/views/controls/menu/menu_event_filter.h" |
#include "ui/views/corewm/tooltip_aura.h" |
#include "ui/views/corewm/tooltip_controller.h" |
#include "ui/views/focus/focus_manager_factory.h" |
@@ -916,6 +918,10 @@ void Shell::Init(const ShellInitParams& init_params) { |
nested_accelerator_controller_.reset( |
new ::wm::NestedAcceleratorController(new NestedAcceleratorDelegate)); |
accelerator_controller_.reset(new AcceleratorController); |
+ |
+ menu_event_filter_delegate_.reset(new AshMenuEventFilterDelegate( |
+ accelerator_controller_->accelerator_history())); |
+ |
maximize_mode_controller_.reset(new MaximizeModeController()); |
#if defined(OS_CHROMEOS) |
@@ -1129,6 +1135,9 @@ void Shell::InitRootWindow(aura::Window* root_window) { |
aura::client::SetDispatcherClient(root_window, |
nested_accelerator_controller_.get()); |
} |
+ |
+ views::MenuEventFilter::SetMenuEventFilterDelegate( |
+ root_window, menu_event_filter_delegate_.get()); |
} |
bool Shell::CanWindowReceiveEvents(aura::Window* window) { |