diff options
author | pkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 20:25:50 +0000 |
---|---|---|
committer | pkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 20:25:50 +0000 |
commit | afdb4c7cefab84b89637bf5216e3a14f420ab7a1 (patch) | |
tree | 64d97f5f7f9be3b86f0dafbfe9b3ea2a7cbe1ffa /ui/views | |
parent | 2a07d3f403481619f212d746c4749e995ddbb4f3 (diff) | |
download | chromium_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.cc | 31 |
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 | |