Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/common/accelerators/accelerator_controller.h" | 5 #include "ash/common/accelerators/accelerator_controller.h" |
| 6 | 6 |
| 7 #include "ash/common/accelerators/accelerator_commands.h" | 7 #include "ash/common/accelerators/accelerator_commands.h" |
| 8 #include "ash/common/accelerators/accelerator_controller_delegate.h" | 8 #include "ash/common/accelerators/accelerator_controller_delegate.h" |
| 9 #include "ash/common/accelerators/debug_commands.h" | 9 #include "ash/common/accelerators/debug_commands.h" |
| 10 #include "ash/common/accessibility_delegate.h" | 10 #include "ash/common/accessibility_delegate.h" |
| (...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 580 return GetAcceleratorProcessingRestriction(-1); | 580 return GetAcceleratorProcessingRestriction(-1); |
| 581 } | 581 } |
| 582 | 582 |
| 583 void AcceleratorController::SetImeControlDelegate( | 583 void AcceleratorController::SetImeControlDelegate( |
| 584 std::unique_ptr<ImeControlDelegate> ime_control_delegate) { | 584 std::unique_ptr<ImeControlDelegate> ime_control_delegate) { |
| 585 ime_control_delegate_ = std::move(ime_control_delegate); | 585 ime_control_delegate_ = std::move(ime_control_delegate); |
| 586 } | 586 } |
| 587 | 587 |
| 588 bool AcceleratorController::ShouldCloseMenuAndRepostAccelerator( | 588 bool AcceleratorController::ShouldCloseMenuAndRepostAccelerator( |
| 589 const ui::Accelerator& accelerator) const { | 589 const ui::Accelerator& accelerator) const { |
| 590 // The context menu can be activated via Search+Shift+Volume up. When seeing | |
| 591 // any key up events involving these keys, don't ever close the menu as it was | |
| 592 // involved in opening the menu. | |
| 593 if (accelerator.type() == ui::ET_KEY_RELEASED && | |
| 594 (accelerator.key_code() == ui::VKEY_LWIN || accelerator.IsShiftDown() || | |
| 595 accelerator.key_code() == ui::VKEY_F10)) | |
| 596 return false; | |
|
oshima
2016/10/21 18:10:42
Looks like this is caused by the TOGGLE_APP_LIST a
David Tseng
2016/10/21 20:29:25
Done.
This appears to fix the issue; thanks for t
oshima
2016/10/24 18:53:04
This is because the menu runs nested message loop,
David Tseng
2016/10/24 19:03:56
The menu used to run a message loop:
https://coder
| |
| 597 | |
| 590 auto itr = accelerators_.find(accelerator); | 598 auto itr = accelerators_.find(accelerator); |
| 591 if (itr == accelerators_.end()) | 599 if (itr == accelerators_.end()) |
| 592 return false; // Menu shouldn't be closed for an invalid accelerator. | 600 return false; // Menu shouldn't be closed for an invalid accelerator. |
| 593 | 601 |
| 594 AcceleratorAction action = itr->second; | 602 AcceleratorAction action = itr->second; |
| 595 return actions_keeping_menu_open_.count(action) == 0; | 603 return actions_keeping_menu_open_.count(action) == 0; |
| 596 } | 604 } |
| 597 | 605 |
| 598 //////////////////////////////////////////////////////////////////////////////// | 606 //////////////////////////////////////////////////////////////////////////////// |
| 599 // AcceleratorController, ui::AcceleratorTarget implementation: | 607 // AcceleratorController, ui::AcceleratorTarget implementation: |
| (...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1123 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && | 1131 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && |
| 1124 actions_needing_window_.find(action) != actions_needing_window_.end()) { | 1132 actions_needing_window_.find(action) != actions_needing_window_.end()) { |
| 1125 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( | 1133 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( |
| 1126 A11Y_ALERT_WINDOW_NEEDED); | 1134 A11Y_ALERT_WINDOW_NEEDED); |
| 1127 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; | 1135 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; |
| 1128 } | 1136 } |
| 1129 return RESTRICTION_NONE; | 1137 return RESTRICTION_NONE; |
| 1130 } | 1138 } |
| 1131 | 1139 |
| 1132 } // namespace ash | 1140 } // namespace ash |
| OLD | NEW |