Chromium Code Reviews| Index: ash/accelerators/accelerator_controller.cc |
| diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
| index fc050a1b7392670193293d0a50f90bc3990a3bd9..914a1e8cc347120455f5b3e7593299a851f125c9 100644 |
| --- a/ash/accelerators/accelerator_controller.cc |
| +++ b/ash/accelerators/accelerator_controller.cc |
| @@ -350,6 +350,9 @@ void AcceleratorController::Init() { |
| for (size_t i = 0; i < kActionsAllowedAtLockScreenLength; ++i) { |
| actions_allowed_at_lock_screen_.insert(kActionsAllowedAtLockScreen[i]); |
| } |
| + for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i) { |
| + actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]); |
| + } |
| for (size_t i = 0; i < kReservedActionsLength; ++i) { |
| reserved_actions_.insert(kReservedActions[i]); |
| } |
| @@ -410,6 +413,7 @@ bool AcceleratorController::PerformAction(int action, |
| at_login_screen = shell->delegate() && !shell->delegate()->IsSessionStarted(); |
| #endif |
| bool at_lock_screen = shell->IsScreenLocked(); |
| + bool at_modal_window = shell->IsModalWindowOpen(); |
| if (at_login_screen && |
| actions_allowed_at_login_screen_.find(action) == |
| @@ -421,6 +425,15 @@ bool AcceleratorController::PerformAction(int action, |
| actions_allowed_at_lock_screen_.end()) { |
| return false; |
| } |
| + if (at_modal_window && |
| + actions_allowed_at_modal_window_.find(action) == |
| + actions_allowed_at_modal_window_.end()) { |
| + // Note: we return true. This indicates the shortcut is handled |
| + // and will not be passed to the modal window. This is important |
| + // for things Alt+Tab that would cause an undesired effect in |
|
Daniel Erat
2012/09/30 01:24:47
nit: s/things/things like/
sschmitz
2012/10/15 23:50:34
Done.
|
| + // the modal window by cycling through its window elements. |
| + return true; |
| + } |
| const ui::KeyboardCode key_code = accelerator.key_code(); |
| const ui::AcceleratorManagerContext& context = |