Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index 51417661cfb5cee0c6204a0b246ff28421c8ba96..f790595256e6bb34a3600cb83049dc344b68943e 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -720,6 +720,19 @@ void AcceleratorController::SetScreenshotDelegate( |
screenshot_delegate_ = screenshot_delegate.Pass(); |
} |
+bool AcceleratorController::ShouldCloseMenuAndRepostAccelerator( |
+ const ui::Accelerator& accelerator) const { |
+ auto itr = accelerators_.find(accelerator); |
+ if (itr == accelerators_.end()) |
+ return false; // Menu shouldn't be closed for an invalid accelerator. |
+ |
+ AcceleratorAction action = itr->second; |
+ if (actions_keeping_menu_open_.count(action)) |
pkotwicz
2015/08/27 17:19:55
How about:
return actions_keeping_menu_open_.count
afakhry
2015/08/28 01:24:41
Much better! Done. Thanks! :)
|
+ return false; |
+ |
+ return true; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// AcceleratorController, ui::AcceleratorTarget implementation: |
@@ -764,6 +777,8 @@ void AcceleratorController::Init() { |
actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]); |
for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) |
actions_needing_window_.insert(kActionsNeedingWindow[i]); |
+ for (size_t i = 0; i < kActionsKeepingMenuOpenLength; ++i) |
+ actions_keeping_menu_open_.insert(kActionsKeepingMenuOpen[i]); |
RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength); |