summaryrefslogtreecommitdiffstats
path: root/ui/views
diff options
context:
space:
mode:
authorpkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 20:25:50 +0000
committerpkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 20:25:50 +0000
commitafdb4c7cefab84b89637bf5216e3a14f420ab7a1 (patch)
tree64d97f5f7f9be3b86f0dafbfe9b3ea2a7cbe1ffa /ui/views
parent2a07d3f403481619f212d746c4749e995ddbb4f3 (diff)
downloadchromium_src-afdb4c7cefab84b89637bf5216e3a14f420ab7a1.zip
chromium_src-afdb4c7cefab84b89637bf5216e3a14f420ab7a1.tar.gz
chromium_src-afdb4c7cefab84b89637bf5216e3a14f420ab7a1.tar.bz2
Disable accelerators while a menu is open on Linux Aura. This behavior is consistent with Windows Aura.
BUG=318002 TEST=Manual, see bug Review URL: https://codereview.chromium.org/177633014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253916 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r--ui/views/controls/menu/menu_controller.cc31
1 files changed, 15 insertions, 16 deletions
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index 00cedd9..ff3a5fe 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -1062,26 +1062,25 @@ uint32_t MenuController::Dispatch(const base::NativeEvent& event) {
if (exit_type_ == EXIT_ALL || exit_type_ == EXIT_DESTROYED)
return (POST_DISPATCH_QUIT_LOOP | POST_DISPATCH_PERFORM_DEFAULT);
- // Activates mnemonics only when it it pressed without modifiers except for
- // caps and shift.
- int flags = ui::EventFlagsFromNative(event) &
- ~ui::EF_CAPS_LOCK_DOWN & ~ui::EF_SHIFT_DOWN;
- if (flags == ui::EF_NONE) {
- switch (ui::EventTypeFromNative(event)) {
- case ui::ET_KEY_PRESSED: {
- if (!OnKeyDown(ui::KeyboardCodeFromNative(event)))
- return POST_DISPATCH_QUIT_LOOP;
-
+ switch (ui::EventTypeFromNative(event)) {
+ case ui::ET_KEY_PRESSED: {
+ if (!OnKeyDown(ui::KeyboardCodeFromNative(event)))
+ return POST_DISPATCH_QUIT_LOOP;
+
+ // Do not check mnemonics if the Alt or Ctrl modifiers are pressed.
+ int flags = ui::EventFlagsFromNative(event);
+ if ((flags & (ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN)) == 0) {
char c = ui::GetCharacterFromKeyCode(
ui::KeyboardCodeFromNative(event), flags);
- bool should_exit = SelectByChar(c);
- return should_exit ? POST_DISPATCH_QUIT_LOOP : POST_DISPATCH_NONE;
+ if (SelectByChar(c))
+ return POST_DISPATCH_QUIT_LOOP;
}
- case ui::ET_KEY_RELEASED:
- return POST_DISPATCH_NONE;
- default:
- break;
+ return POST_DISPATCH_NONE;
}
+ case ui::ET_KEY_RELEASED:
+ return POST_DISPATCH_NONE;
+ default:
+ break;
}
return POST_DISPATCH_PERFORM_DEFAULT |