diff options
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 4 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.cc | 169 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.h | 4 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table_unittest.cc | 11 | ||||
-rw-r--r-- | chrome/browser/ui/views/accelerator_table.cc | 224 | ||||
-rw-r--r-- | chrome/browser/ui/views/accelerator_table.h | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/accelerator_table_unittest.cc | 21 | ||||
-rw-r--r-- | chrome/browser/ui/views/frame/browser_view.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_dialog_view.cc | 23 |
9 files changed, 235 insertions, 229 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index 3cf288f..8ad8a89 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -195,9 +195,7 @@ void AcceleratorController::Init() { for (size_t i = 0; i < kAcceleratorDataLength; ++i) { ui::Accelerator accelerator(kAcceleratorData[i].keycode, - kAcceleratorData[i].shift, - kAcceleratorData[i].ctrl, - kAcceleratorData[i].alt); + kAcceleratorData[i].modifiers); accelerator.set_type(kAcceleratorData[i].trigger_on_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); Register(accelerator, this); diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc index 88e2ccd..225ad90 100644 --- a/ash/accelerators/accelerator_table.cc +++ b/ash/accelerators/accelerator_table.cc @@ -5,73 +5,80 @@ #include "ash/accelerators/accelerator_table.h" #include "base/basictypes.h" +#include "ui/base/events.h" namespace ash { const AcceleratorData kAcceleratorData[] = { - // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction - - { false, ui::VKEY_MENU, true, false, true, NEXT_IME }, - { false, ui::VKEY_SHIFT, true, false, true, NEXT_IME }, - { true, ui::VKEY_SPACE, false, true, false, PREVIOUS_IME }, + { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME }, + { false, ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME }, + { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, // Shortcuts for Japanese IME. - { true, ui::VKEY_CONVERT, false, false, false, SWITCH_IME }, - { true, ui::VKEY_NONCONVERT, false, false, false, SWITCH_IME }, - { true, ui::VKEY_DBE_SBCSCHAR, false, false, false, SWITCH_IME }, - { true, ui::VKEY_DBE_DBCSCHAR, false, false, false, SWITCH_IME }, + { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME }, + { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME }, + { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME }, + { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME }, // Shortcuts for Koren IME. - { true, ui::VKEY_HANGUL, false, false, false, SWITCH_IME }, - { true, ui::VKEY_SPACE, true, false, false, SWITCH_IME }, + { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME }, + { true, ui::VKEY_SPACE, ui::EF_SHIFT_DOWN, SWITCH_IME }, - { true, ui::VKEY_TAB, false, false, true, CYCLE_FORWARD_MRU }, - { true, ui::VKEY_TAB, true, false, true, CYCLE_BACKWARD_MRU }, - { true, ui::VKEY_F5, false, false, false, CYCLE_FORWARD_LINEAR }, + { true, ui::VKEY_TAB, + ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU }, + { true, ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, + CYCLE_BACKWARD_MRU }, + { true, ui::VKEY_F5, ui::EF_NONE, CYCLE_FORWARD_LINEAR }, #if defined(OS_CHROMEOS) - { true, ui::VKEY_BRIGHTNESS_DOWN, false, false, false, BRIGHTNESS_DOWN }, - { true, ui::VKEY_BRIGHTNESS_UP, false, false, false, BRIGHTNESS_UP }, - { true, ui::VKEY_L, true, true, false, LOCK_SCREEN }, - { true, ui::VKEY_M, false, true, false, OPEN_FILE_MANAGER }, - { true, ui::VKEY_T, false, true, true, OPEN_CROSH }, + { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN }, + { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP }, + { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN }, + { true, ui::VKEY_M, ui::EF_CONTROL_DOWN, OPEN_FILE_MANAGER }, + { true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH }, #endif - { true, ui::VKEY_Q, true, true, false, EXIT }, - { true, ui::VKEY_Z, false, true, true, TOGGLE_SPOKEN_FEEDBACK }, + { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT }, + { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + TOGGLE_SPOKEN_FEEDBACK }, // When you change the shortcut for NEW_INCOGNITO_WINDOW or NEW_WINDOW, // you also need to modify ToolbarView::GetAcceleratorForCommandId() in // chrome/browser/ui/views/toolbar_view.cc. - { true, ui::VKEY_N, true, true, false, NEW_INCOGNITO_WINDOW }, - { true, ui::VKEY_N, false, true, false, NEW_WINDOW }, + { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + NEW_INCOGNITO_WINDOW }, + { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW }, - { true, ui::VKEY_F5, true, false, false, CYCLE_BACKWARD_LINEAR }, - { true, ui::VKEY_F5, false, true, false, TAKE_SCREENSHOT }, - { true, ui::VKEY_F5, true, true, false, TAKE_PARTIAL_SCREENSHOT }, - { true, ui::VKEY_PRINT, false, false, false, TAKE_SCREENSHOT }, + { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN, CYCLE_BACKWARD_LINEAR }, + { true, ui::VKEY_F5, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT }, + { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + TAKE_PARTIAL_SCREENSHOT }, + { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT }, // On Chrome OS, Search key is mapped to LWIN. - { true, ui::VKEY_LWIN, false, false, false, SEARCH_KEY }, - { true, ui::VKEY_LWIN, false, true, false, TOGGLE_APP_LIST }, - { true, ui::VKEY_LWIN, true, false, false, TOGGLE_CAPS_LOCK }, - { true, ui::VKEY_F6, false, false, false, BRIGHTNESS_DOWN }, - { true, ui::VKEY_F7, false, false, false, BRIGHTNESS_UP }, - { true, ui::VKEY_F8, false, false, false, VOLUME_MUTE }, - { true, ui::VKEY_VOLUME_MUTE, false, false, false, VOLUME_MUTE }, - { true, ui::VKEY_F9, false, false, false, VOLUME_DOWN }, - { true, ui::VKEY_VOLUME_DOWN, false, false, false, VOLUME_DOWN }, - { true, ui::VKEY_F10, false, false, false, VOLUME_UP }, - { true, ui::VKEY_VOLUME_UP, false, false, false, VOLUME_UP }, - { true, ui::VKEY_L, true, false, true, FOCUS_LAUNCHER }, - { true, ui::VKEY_S, true, false, true, FOCUS_TRAY }, - { true, ui::VKEY_OEM_2, false, true, true, SHOW_KEYBOARD_OVERLAY }, - { true, ui::VKEY_OEM_2, true, true, true, SHOW_KEYBOARD_OVERLAY }, - { true, ui::VKEY_F1, true, true, false, SHOW_OAK }, - { true, ui::VKEY_1, false, false, true, SELECT_WIN_0 }, - { true, ui::VKEY_2, false, false, true, SELECT_WIN_1 }, - { true, ui::VKEY_3, false, false, true, SELECT_WIN_2 }, - { true, ui::VKEY_4, false, false, true, SELECT_WIN_3 }, - { true, ui::VKEY_5, false, false, true, SELECT_WIN_4 }, - { true, ui::VKEY_6, false, false, true, SELECT_WIN_5 }, - { true, ui::VKEY_7, false, false, true, SELECT_WIN_6 }, - { true, ui::VKEY_8, false, false, true, SELECT_WIN_7 }, - { true, ui::VKEY_9, false, false, true, SELECT_LAST_WIN }, + { true, ui::VKEY_LWIN, ui::EF_NONE, SEARCH_KEY }, + { true, ui::VKEY_LWIN, ui::EF_CONTROL_DOWN, TOGGLE_APP_LIST }, + { true, ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, TOGGLE_CAPS_LOCK }, + { true, ui::VKEY_F6, ui::EF_NONE, BRIGHTNESS_DOWN }, + { true, ui::VKEY_F7, ui::EF_NONE, BRIGHTNESS_UP }, + { true, ui::VKEY_F8, ui::EF_NONE, VOLUME_MUTE }, + { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, + { true, ui::VKEY_F9, ui::EF_NONE, VOLUME_DOWN }, + { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, + { true, ui::VKEY_F10, ui::EF_NONE, VOLUME_UP }, + { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, + { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_LAUNCHER }, + { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_TRAY }, + { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + SHOW_KEYBOARD_OVERLAY }, + { true, ui::VKEY_OEM_2, + ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + SHOW_KEYBOARD_OVERLAY }, + { true, ui::VKEY_F1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, SHOW_OAK }, + { true, ui::VKEY_1, ui::EF_ALT_DOWN, SELECT_WIN_0 }, + { true, ui::VKEY_2, ui::EF_ALT_DOWN, SELECT_WIN_1 }, + { true, ui::VKEY_3, ui::EF_ALT_DOWN, SELECT_WIN_2 }, + { true, ui::VKEY_4, ui::EF_ALT_DOWN, SELECT_WIN_3 }, + { true, ui::VKEY_5, ui::EF_ALT_DOWN, SELECT_WIN_4 }, + { true, ui::VKEY_6, ui::EF_ALT_DOWN, SELECT_WIN_5 }, + { true, ui::VKEY_7, ui::EF_ALT_DOWN, SELECT_WIN_6 }, + { true, ui::VKEY_8, ui::EF_ALT_DOWN, SELECT_WIN_7 }, + { true, ui::VKEY_9, ui::EF_ALT_DOWN, SELECT_LAST_WIN }, // We need the number keys with and without shift since the French keyboard // does not have explicit number keys. Instead they have to press @@ -79,38 +86,44 @@ const AcceleratorData kAcceleratorData[] = { // functionality, we should think about either assembling this table // dynamically - or by decoding the keys properly (which is of course in // conflict with other keyboards since the Shift+ is missing then). - { true, ui::VKEY_1, true, false, true, SELECT_WIN_0 }, - { true, ui::VKEY_2, true, false, true, SELECT_WIN_1 }, - { true, ui::VKEY_3, true, false, true, SELECT_WIN_2 }, - { true, ui::VKEY_4, true, false, true, SELECT_WIN_3 }, - { true, ui::VKEY_5, true, false, true, SELECT_WIN_4 }, - { true, ui::VKEY_6, true, false, true, SELECT_WIN_5 }, - { true, ui::VKEY_7, true, false, true, SELECT_WIN_6 }, - { true, ui::VKEY_8, true, false, true, SELECT_WIN_7 }, - { true, ui::VKEY_9, true, false, true, SELECT_LAST_WIN }, + { true, ui::VKEY_1, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_0 }, + { true, ui::VKEY_2, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_1 }, + { true, ui::VKEY_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_2 }, + { true, ui::VKEY_4, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_3 }, + { true, ui::VKEY_5, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_4 }, + { true, ui::VKEY_6, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_5 }, + { true, ui::VKEY_7, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_6 }, + { true, ui::VKEY_8, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_7 }, + { true, ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_LAST_WIN }, // Window management shortcuts. - { true, ui::VKEY_OEM_4, false, false, true, WINDOW_SNAP_LEFT }, - { true, ui::VKEY_OEM_6, false, false, true, WINDOW_SNAP_RIGHT }, - { true, ui::VKEY_OEM_MINUS, false, false, true, WINDOW_MINIMIZE }, - { true, ui::VKEY_OEM_PLUS, false, false, true, WINDOW_MAXIMIZE_RESTORE }, - { true, ui::VKEY_OEM_PLUS, true, false, true, WINDOW_POSITION_CENTER }, + { true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_SNAP_LEFT }, + { true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_SNAP_RIGHT }, + { true, ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN, WINDOW_MINIMIZE }, + { true, ui::VKEY_OEM_PLUS, ui::EF_ALT_DOWN, WINDOW_MAXIMIZE_RESTORE }, + { true, ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, + WINDOW_POSITION_CENTER }, - { true, ui::VKEY_F3, true, true, true, ROTATE_WINDOWS }, + { true, ui::VKEY_F3, + ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + ROTATE_WINDOWS }, #if !defined(NDEBUG) - { true, ui::VKEY_HOME, false, true, false, ROTATE_SCREEN }, - { true, ui::VKEY_B, false, true, true, TOGGLE_DESKTOP_BACKGROUND_MODE }, - { true, ui::VKEY_F11, false, true, false, TOGGLE_ROOT_WINDOW_FULL_SCREEN }, - { true, ui::VKEY_L, true, true, true, PRINT_LAYER_HIERARCHY }, - { true, ui::VKEY_W, true, true, true, PRINT_WINDOW_HIERARCHY }, + { true, ui::VKEY_HOME, ui::EF_CONTROL_DOWN, ROTATE_SCREEN }, + { true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + TOGGLE_DESKTOP_BACKGROUND_MODE }, + { true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, TOGGLE_ROOT_WINDOW_FULL_SCREEN }, + { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + PRINT_LAYER_HIERARCHY }, + { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, + PRINT_WINDOW_HIERARCHY }, // For testing on systems where Alt-Tab is already mapped. - { true, ui::VKEY_W, false, false, true, CYCLE_FORWARD_MRU }, - { true, ui::VKEY_W, true, false, true, CYCLE_BACKWARD_MRU }, - { true, ui::VKEY_F4, false, true, false, MONITOR_ADD_REMOVE }, - { true, ui::VKEY_F4, true, true, false, MONITOR_CYCLE }, - { true, ui::VKEY_HOME, true, true, false, MONITOR_TOGGLE_SCALE }, + { true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU }, + { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU }, + { true, ui::VKEY_F4, ui::EF_CONTROL_DOWN, MONITOR_ADD_REMOVE }, + { true, ui::VKEY_F4, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, MONITOR_CYCLE }, + { true, ui::VKEY_HOME, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + MONITOR_TOGGLE_SCALE }, #endif - // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction }; const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h index 1de1067..ce411a7 100644 --- a/ash/accelerators/accelerator_table.h +++ b/ash/accelerators/accelerator_table.h @@ -74,9 +74,7 @@ enum AcceleratorAction { struct AcceleratorData { bool trigger_on_press; ui::KeyboardCode keycode; - bool shift; - bool ctrl; - bool alt; + int modifiers; AcceleratorAction action; }; diff --git a/ash/accelerators/accelerator_table_unittest.cc b/ash/accelerators/accelerator_table_unittest.cc index 900adb8..9be3906 100644 --- a/ash/accelerators/accelerator_table_unittest.cc +++ b/ash/accelerators/accelerator_table_unittest.cc @@ -19,11 +19,7 @@ struct Cmp { return lhs.trigger_on_press < rhs.trigger_on_press; if (lhs.keycode != rhs.keycode) return lhs.keycode < rhs.keycode; - if (lhs.shift != rhs.shift) - return lhs.shift < rhs.shift; - if (lhs.ctrl != rhs.ctrl) - return lhs.ctrl < rhs.ctrl; - return lhs.alt < rhs.alt; + return lhs.modifiers < rhs.modifiers; // Do not check |action|. } }; @@ -36,8 +32,9 @@ TEST(AcceleratorTableTest, CheckDuplicatedAccelerators) { const AcceleratorData& entry = kAcceleratorData[i]; EXPECT_TRUE(acclerators.insert(entry).second) << "Duplicated accelerator: " << entry.trigger_on_press << ", " - << entry.keycode << ", " << entry.shift << ", " << entry.ctrl << ", " - << entry.alt; + << entry.keycode << ", " << (entry.modifiers & ui::EF_SHIFT_DOWN) + << ", " << (entry.modifiers & ui::EF_CONTROL_DOWN) << ", " + << (entry.modifiers & ui::EF_ALT_DOWN); } } diff --git a/chrome/browser/ui/views/accelerator_table.cc b/chrome/browser/ui/views/accelerator_table.cc index efdaf18..0b85d27 100644 --- a/chrome/browser/ui/views/accelerator_table.cc +++ b/chrome/browser/ui/views/accelerator_table.cc @@ -6,6 +6,7 @@ #include "base/basictypes.h" #include "chrome/app/chrome_command_ids.h" +#include "ui/base/events.h" #include "ui/base/keycodes/keyboard_codes.h" namespace browser { @@ -15,148 +16,159 @@ namespace browser { // Do not use Ctrl-Alt as a shortcut modifier, as it is used by i18n keyboards: // http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx const AcceleratorMapping kAcceleratorMap[] = { - // Keycode Shift Ctrl Alt Command ID - { ui::VKEY_LEFT, false, false, true, IDC_BACK }, - { ui::VKEY_BACK, false, false, false, IDC_BACK }, + { ui::VKEY_LEFT, ui::EF_ALT_DOWN, IDC_BACK }, + { ui::VKEY_BACK, ui::EF_NONE, IDC_BACK }, #if defined(OS_CHROMEOS) - { ui::VKEY_F1, false, false, false, IDC_BACK }, + { ui::VKEY_F1, ui::EF_NONE, IDC_BACK }, #endif - { ui::VKEY_D, false, true, false, IDC_BOOKMARK_PAGE }, - { ui::VKEY_D, true, true, false, IDC_BOOKMARK_ALL_TABS }, + { ui::VKEY_D, ui::EF_CONTROL_DOWN, IDC_BOOKMARK_PAGE }, + { ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_BOOKMARK_ALL_TABS }, #if !defined(OS_CHROMEOS) - { ui::VKEY_DELETE, true, true, false, IDC_CLEAR_BROWSING_DATA }, + { ui::VKEY_DELETE, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_CLEAR_BROWSING_DATA }, #else - { ui::VKEY_BACK, true, true, false, IDC_CLEAR_BROWSING_DATA }, + { ui::VKEY_BACK, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_CLEAR_BROWSING_DATA }, #endif #if !defined(OS_CHROMEOS) - { ui::VKEY_F4, false, true, false, IDC_CLOSE_TAB }, + { ui::VKEY_F4, ui::EF_CONTROL_DOWN, IDC_CLOSE_TAB }, #endif - { ui::VKEY_W, false, true, false, IDC_CLOSE_TAB }, - { ui::VKEY_W, true, true, false, IDC_CLOSE_WINDOW }, + { ui::VKEY_W, ui::EF_CONTROL_DOWN, IDC_CLOSE_TAB }, + { ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_CLOSE_WINDOW }, #if !defined(OS_CHROMEOS) - { ui::VKEY_F4, false, false, true, IDC_CLOSE_WINDOW }, + { ui::VKEY_F4, ui::EF_ALT_DOWN, IDC_CLOSE_WINDOW }, #endif #if !defined(USE_AURA) - { ui::VKEY_Q, true, true, false, IDC_EXIT }, + { ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT }, #endif - { ui::VKEY_F, false, true, false, IDC_FIND }, - { ui::VKEY_G, false, true, false, IDC_FIND_NEXT }, + { ui::VKEY_F, ui::EF_CONTROL_DOWN, IDC_FIND }, + { ui::VKEY_G, ui::EF_CONTROL_DOWN, IDC_FIND_NEXT }, #if !defined(OS_CHROMEOS) - { ui::VKEY_F3, false, false, false, IDC_FIND_NEXT }, + { ui::VKEY_F3, ui::EF_NONE, IDC_FIND_NEXT }, #endif - { ui::VKEY_G, true, true, false, IDC_FIND_PREVIOUS }, + { ui::VKEY_G, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_FIND_PREVIOUS }, #if !defined(OS_CHROMEOS) - { ui::VKEY_F3, true, false, false, IDC_FIND_PREVIOUS }, + { ui::VKEY_F3, ui::EF_SHIFT_DOWN, IDC_FIND_PREVIOUS }, #endif - { ui::VKEY_D, false, false, true, IDC_FOCUS_LOCATION }, - { ui::VKEY_L, false, true, false, IDC_FOCUS_LOCATION }, + { ui::VKEY_D, ui::EF_ALT_DOWN, IDC_FOCUS_LOCATION }, + { ui::VKEY_L, ui::EF_CONTROL_DOWN, IDC_FOCUS_LOCATION }, #if !defined(OS_CHROMEOS) - { ui::VKEY_F10, false, false, false, IDC_FOCUS_MENU_BAR }, - { ui::VKEY_MENU, false, false, false, IDC_FOCUS_MENU_BAR }, - { ui::VKEY_F6, false, false, false, IDC_FOCUS_NEXT_PANE }, + { ui::VKEY_F10, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, + { ui::VKEY_MENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, + { ui::VKEY_F6, ui::EF_NONE, IDC_FOCUS_NEXT_PANE }, #else - { ui::VKEY_F2, false, true, false, IDC_FOCUS_NEXT_PANE }, + { ui::VKEY_F2, ui::EF_CONTROL_DOWN, IDC_FOCUS_NEXT_PANE }, #endif #if !defined(OS_CHROMEOS) - { ui::VKEY_F6, true, false, false, IDC_FOCUS_PREVIOUS_PANE }, + { ui::VKEY_F6, ui::EF_SHIFT_DOWN, IDC_FOCUS_PREVIOUS_PANE }, #else - { ui::VKEY_F1, false, true, false, IDC_FOCUS_PREVIOUS_PANE }, -#endif - { ui::VKEY_K, false, true, false, IDC_FOCUS_SEARCH }, - { ui::VKEY_E, false, true, false, IDC_FOCUS_SEARCH }, - { ui::VKEY_BROWSER_SEARCH, false, false, false, IDC_FOCUS_SEARCH }, - { ui::VKEY_T, true, false, true, IDC_FOCUS_TOOLBAR }, - { ui::VKEY_B, true, false, true, IDC_FOCUS_BOOKMARKS }, - { ui::VKEY_RIGHT, false, false, true, IDC_FORWARD }, - { ui::VKEY_BACK, true, false, false, IDC_FORWARD }, + { ui::VKEY_F1, ui::EF_CONTROL_DOWN, IDC_FOCUS_PREVIOUS_PANE }, +#endif + { ui::VKEY_K, ui::EF_CONTROL_DOWN, IDC_FOCUS_SEARCH }, + { ui::VKEY_E, ui::EF_CONTROL_DOWN, IDC_FOCUS_SEARCH }, + { ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, IDC_FOCUS_SEARCH }, + { ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FOCUS_TOOLBAR }, + { ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FOCUS_BOOKMARKS }, + { ui::VKEY_RIGHT, ui::EF_ALT_DOWN, IDC_FORWARD }, + { ui::VKEY_BACK, ui::EF_SHIFT_DOWN, IDC_FORWARD }, #if defined(OS_CHROMEOS) - { ui::VKEY_F2, false, false, false, IDC_FORWARD }, + { ui::VKEY_F2, ui::EF_NONE, IDC_FORWARD }, #endif #if !defined(OS_CHROMEOS) - { ui::VKEY_F11, false, false, false, IDC_FULLSCREEN }, + { ui::VKEY_F11, ui::EF_NONE, IDC_FULLSCREEN }, #else - { ui::VKEY_F4, false, false, false, IDC_FULLSCREEN }, + { ui::VKEY_F4, ui::EF_NONE, IDC_FULLSCREEN }, #endif #if !defined(OS_CHROMEOS) - { ui::VKEY_F1, false, false, false, IDC_HELP_PAGE }, + { ui::VKEY_F1, ui::EF_NONE, IDC_HELP_PAGE }, #else - { ui::VKEY_OEM_2, false, true, false, IDC_HELP_PAGE }, - { ui::VKEY_OEM_2, true, true, false, IDC_HELP_PAGE }, + { ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN, IDC_HELP_PAGE }, + { ui::VKEY_OEM_2, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_HELP_PAGE }, #endif - { ui::VKEY_I, true, true, false, IDC_DEV_TOOLS }, + { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_DEV_TOOLS }, #if defined(OS_CHROMEOS) - { ui::VKEY_I, true, false, true, IDC_FEEDBACK }, + { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FEEDBACK }, #endif - { ui::VKEY_F12, false, false, false, IDC_DEV_TOOLS }, - { ui::VKEY_J, true, true, false, IDC_DEV_TOOLS_CONSOLE }, - { ui::VKEY_C, true, true, false, IDC_DEV_TOOLS_INSPECT }, + { ui::VKEY_F12, ui::EF_NONE, IDC_DEV_TOOLS }, + { ui::VKEY_J, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_DEV_TOOLS_CONSOLE }, + { ui::VKEY_C, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_DEV_TOOLS_INSPECT }, #if !defined(USE_ASH) - { ui::VKEY_N, true, true, false, IDC_NEW_INCOGNITO_WINDOW }, + { ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_NEW_INCOGNITO_WINDOW }, #endif - { ui::VKEY_T, false, true, false, IDC_NEW_TAB }, + { ui::VKEY_T, ui::EF_CONTROL_DOWN, IDC_NEW_TAB }, #if !defined(USE_ASH) - { ui::VKEY_N, false, true, false, IDC_NEW_WINDOW }, -#endif - { ui::VKEY_O, false, true, false, IDC_OPEN_FILE }, - { ui::VKEY_P, false, true, false, IDC_PRINT}, - { ui::VKEY_P, true, true, false, IDC_ADVANCED_PRINT}, - { ui::VKEY_R, false, true, false, IDC_RELOAD }, - { ui::VKEY_R, true, true, false, IDC_RELOAD_IGNORING_CACHE }, + { ui::VKEY_N, ui::EF_CONTROL_DOWN, IDC_NEW_WINDOW }, +#endif + { ui::VKEY_O, ui::EF_CONTROL_DOWN, IDC_OPEN_FILE }, + { ui::VKEY_P, ui::EF_CONTROL_DOWN, IDC_PRINT}, + { ui::VKEY_P, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_ADVANCED_PRINT}, + { ui::VKEY_R, ui::EF_CONTROL_DOWN, IDC_RELOAD }, + { ui::VKEY_R, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_RELOAD_IGNORING_CACHE }, #if !defined(OS_CHROMEOS) - { ui::VKEY_F5, false, false, false, IDC_RELOAD }, - { ui::VKEY_F5, false, true, false, IDC_RELOAD_IGNORING_CACHE }, - { ui::VKEY_F5, true, false, false, IDC_RELOAD_IGNORING_CACHE }, + { ui::VKEY_F5, ui::EF_NONE, IDC_RELOAD }, + { ui::VKEY_F5, ui::EF_CONTROL_DOWN, IDC_RELOAD_IGNORING_CACHE }, + { ui::VKEY_F5, ui::EF_SHIFT_DOWN, IDC_RELOAD_IGNORING_CACHE }, #else - { ui::VKEY_F3, false, false, false, IDC_RELOAD }, - { ui::VKEY_F3, false, true, false, IDC_RELOAD_IGNORING_CACHE }, - { ui::VKEY_F3, true, false, false, IDC_RELOAD_IGNORING_CACHE }, -#endif - { ui::VKEY_HOME, false, false, true, IDC_HOME }, - { ui::VKEY_T, true, true, false, IDC_RESTORE_TAB }, - { ui::VKEY_S, false, true, false, IDC_SAVE_PAGE }, - { ui::VKEY_9, false, true, false, IDC_SELECT_LAST_TAB }, - { ui::VKEY_NUMPAD9, false, true, false, IDC_SELECT_LAST_TAB }, - { ui::VKEY_TAB, false, true, false, IDC_SELECT_NEXT_TAB }, - { ui::VKEY_NEXT, false, true, false, IDC_SELECT_NEXT_TAB }, - { ui::VKEY_TAB, true, true, false, IDC_SELECT_PREVIOUS_TAB }, - { ui::VKEY_PRIOR, false, true, false, IDC_SELECT_PREVIOUS_TAB }, - { ui::VKEY_1, false, true, false, IDC_SELECT_TAB_0 }, - { ui::VKEY_NUMPAD1, false, true, false, IDC_SELECT_TAB_0 }, - { ui::VKEY_2, false, true, false, IDC_SELECT_TAB_1 }, - { ui::VKEY_NUMPAD2, false, true, false, IDC_SELECT_TAB_1 }, - { ui::VKEY_3, false, true, false, IDC_SELECT_TAB_2 }, - { ui::VKEY_NUMPAD3, false, true, false, IDC_SELECT_TAB_2 }, - { ui::VKEY_4, false, true, false, IDC_SELECT_TAB_3 }, - { ui::VKEY_NUMPAD4, false, true, false, IDC_SELECT_TAB_3 }, - { ui::VKEY_5, false, true, false, IDC_SELECT_TAB_4 }, - { ui::VKEY_NUMPAD5, false, true, false, IDC_SELECT_TAB_4 }, - { ui::VKEY_6, false, true, false, IDC_SELECT_TAB_5 }, - { ui::VKEY_NUMPAD6, false, true, false, IDC_SELECT_TAB_5 }, - { ui::VKEY_7, false, true, false, IDC_SELECT_TAB_6 }, - { ui::VKEY_NUMPAD7, false, true, false, IDC_SELECT_TAB_6 }, - { ui::VKEY_8, false, true, false, IDC_SELECT_TAB_7 }, - { ui::VKEY_NUMPAD8, false, true, false, IDC_SELECT_TAB_7 }, - { ui::VKEY_B, true, true, false, IDC_SHOW_BOOKMARK_BAR }, - { ui::VKEY_O, true, true, false, IDC_SHOW_BOOKMARK_MANAGER }, - { ui::VKEY_J, false, true, false, IDC_SHOW_DOWNLOADS }, - { ui::VKEY_H, false, true, false, IDC_SHOW_HISTORY }, - { ui::VKEY_F, false, false, true, IDC_SHOW_APP_MENU}, - { ui::VKEY_E, false, false, true, IDC_SHOW_APP_MENU}, + { ui::VKEY_F3, ui::EF_NONE, IDC_RELOAD }, + { ui::VKEY_F3, ui::EF_CONTROL_DOWN, IDC_RELOAD_IGNORING_CACHE }, + { ui::VKEY_F3, ui::EF_SHIFT_DOWN, IDC_RELOAD_IGNORING_CACHE }, +#endif + { ui::VKEY_HOME, ui::EF_ALT_DOWN, IDC_HOME }, + { ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_RESTORE_TAB }, + { ui::VKEY_S, ui::EF_CONTROL_DOWN, IDC_SAVE_PAGE }, + { ui::VKEY_9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB }, + { ui::VKEY_NUMPAD9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB }, + { ui::VKEY_TAB, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, + { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, + { ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_SELECT_PREVIOUS_TAB }, + { ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN, IDC_SELECT_PREVIOUS_TAB }, + { ui::VKEY_1, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_0 }, + { ui::VKEY_NUMPAD1, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_0 }, + { ui::VKEY_2, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_1 }, + { ui::VKEY_NUMPAD2, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_1 }, + { ui::VKEY_3, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_2 }, + { ui::VKEY_NUMPAD3, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_2 }, + { ui::VKEY_4, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_3 }, + { ui::VKEY_NUMPAD4, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_3 }, + { ui::VKEY_5, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_4 }, + { ui::VKEY_NUMPAD5, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_4 }, + { ui::VKEY_6, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_5 }, + { ui::VKEY_NUMPAD6, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_5 }, + { ui::VKEY_7, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_6 }, + { ui::VKEY_NUMPAD7, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_6 }, + { ui::VKEY_8, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_7 }, + { ui::VKEY_NUMPAD8, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_7 }, + { ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_SHOW_BOOKMARK_BAR }, + { ui::VKEY_O, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_SHOW_BOOKMARK_MANAGER }, + { ui::VKEY_J, ui::EF_CONTROL_DOWN, IDC_SHOW_DOWNLOADS }, + { ui::VKEY_H, ui::EF_CONTROL_DOWN, IDC_SHOW_HISTORY }, + { ui::VKEY_F, ui::EF_ALT_DOWN, IDC_SHOW_APP_MENU}, + { ui::VKEY_E, ui::EF_ALT_DOWN, IDC_SHOW_APP_MENU}, #if !defined(OS_CHROMEOS) - { ui::VKEY_M, true, true, false, IDC_SHOW_AVATAR_MENU}, -#endif - { ui::VKEY_ESCAPE, false, false, false, IDC_STOP }, - { ui::VKEY_ESCAPE, true, false, false, IDC_TASK_MANAGER }, - { ui::VKEY_OEM_PERIOD, true, true, false, IDC_TOGGLE_SPEECH_INPUT }, - { ui::VKEY_U, false, true, false, IDC_VIEW_SOURCE }, - { ui::VKEY_OEM_MINUS, false, true, false, IDC_ZOOM_MINUS }, - { ui::VKEY_OEM_MINUS, true, true, false, IDC_ZOOM_MINUS }, - { ui::VKEY_SUBTRACT, false, true, false, IDC_ZOOM_MINUS }, - { ui::VKEY_0, false, true, false, IDC_ZOOM_NORMAL }, - { ui::VKEY_NUMPAD0, false, true, false, IDC_ZOOM_NORMAL }, - { ui::VKEY_OEM_PLUS, false, true, false, IDC_ZOOM_PLUS }, - { ui::VKEY_OEM_PLUS, true, true, false, IDC_ZOOM_PLUS }, - { ui::VKEY_ADD, false, true, false, IDC_ZOOM_PLUS }, + { ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_SHOW_AVATAR_MENU}, +#endif + { ui::VKEY_ESCAPE, ui::EF_NONE, IDC_STOP }, + { ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, IDC_TASK_MANAGER }, + { ui::VKEY_OEM_PERIOD, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_TOGGLE_SPEECH_INPUT }, + { ui::VKEY_U, ui::EF_CONTROL_DOWN, IDC_VIEW_SOURCE }, + { ui::VKEY_OEM_MINUS, ui::EF_CONTROL_DOWN, IDC_ZOOM_MINUS }, + { ui::VKEY_OEM_MINUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, + IDC_ZOOM_MINUS }, + { ui::VKEY_SUBTRACT, ui::EF_CONTROL_DOWN, IDC_ZOOM_MINUS }, + { ui::VKEY_0, ui::EF_CONTROL_DOWN, IDC_ZOOM_NORMAL }, + { ui::VKEY_NUMPAD0, ui::EF_CONTROL_DOWN, IDC_ZOOM_NORMAL }, + { ui::VKEY_OEM_PLUS, ui::EF_CONTROL_DOWN, IDC_ZOOM_PLUS }, + { ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_ZOOM_PLUS }, + { ui::VKEY_ADD, ui::EF_CONTROL_DOWN, IDC_ZOOM_PLUS }, }; const size_t kAcceleratorMapLength = arraysize(kAcceleratorMap); diff --git a/chrome/browser/ui/views/accelerator_table.h b/chrome/browser/ui/views/accelerator_table.h index 4a85976..238c79c 100644 --- a/chrome/browser/ui/views/accelerator_table.h +++ b/chrome/browser/ui/views/accelerator_table.h @@ -15,9 +15,7 @@ namespace browser { struct AcceleratorMapping { ui::KeyboardCode keycode; - bool shift_pressed; - bool ctrl_pressed; - bool alt_pressed; + int modifiers; int command_id; }; diff --git a/chrome/browser/ui/views/accelerator_table_unittest.cc b/chrome/browser/ui/views/accelerator_table_unittest.cc index 1451dfa..070c4c1 100644 --- a/chrome/browser/ui/views/accelerator_table_unittest.cc +++ b/chrome/browser/ui/views/accelerator_table_unittest.cc @@ -7,6 +7,7 @@ #include "base/basictypes.h" #include "chrome/browser/ui/views/accelerator_table.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/events.h" #if defined(USE_ASH) #include "ash/accelerators/accelerator_table.h" @@ -19,11 +20,7 @@ struct Cmp { const browser::AcceleratorMapping& rhs) { if (lhs.keycode != rhs.keycode) return lhs.keycode < rhs.keycode; - if (lhs.shift_pressed != rhs.shift_pressed) - return lhs.shift_pressed < rhs.shift_pressed; - if (lhs.ctrl_pressed != rhs.ctrl_pressed) - return lhs.ctrl_pressed < rhs.ctrl_pressed; - return lhs.alt_pressed < rhs.alt_pressed; + return lhs.modifiers < rhs.modifiers; // Do not check |command_id|. } }; @@ -36,8 +33,9 @@ TEST(AcceleratorTableTest, CheckDuplicatedAccelerators) { const browser::AcceleratorMapping& entry = browser::kAcceleratorMap[i]; EXPECT_TRUE(acclerators.insert(entry).second) << "Duplicated accelerator: " << entry.keycode << ", " - << entry.shift_pressed << ", " << entry.ctrl_pressed << ", " - << entry.alt_pressed; + << (entry.modifiers & ui::EF_SHIFT_DOWN) << ", " + << (entry.modifiers & ui::EF_CONTROL_DOWN) << ", " + << (entry.modifiers & ui::EF_ALT_DOWN); } } @@ -54,14 +52,13 @@ TEST(AcceleratorTableTest, CheckDuplicatedAcceleratorsAsh) { continue; // kAcceleratorMap does not have any release accelerators. browser::AcceleratorMapping entry; entry.keycode = ash_entry.keycode; - entry.shift_pressed = ash_entry.shift; - entry.ctrl_pressed = ash_entry.ctrl; - entry.alt_pressed = ash_entry.alt; + entry.modifiers = ash_entry.modifiers; entry.command_id = 0; // dummy EXPECT_TRUE(acclerators.insert(entry).second) << "Duplicated accelerator: " << entry.keycode << ", " - << entry.shift_pressed << ", " << entry.ctrl_pressed << ", " - << entry.alt_pressed; + << (entry.modifiers & ui::EF_SHIFT_DOWN) << ", " + << (entry.modifiers & ui::EF_CONTROL_DOWN) << ", " + << (entry.modifiers & ui::EF_ALT_DOWN); } } #endif // USE_ASH diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 2827d6e..97a1813 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -2140,9 +2140,7 @@ void BrowserView::LoadAccelerators() { // Let's fill our own accelerator table. for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { ui::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, - browser::kAcceleratorMap[i].shift_pressed, - browser::kAcceleratorMap[i].ctrl_pressed, - browser::kAcceleratorMap[i].alt_pressed); + browser::kAcceleratorMap[i].modifiers); accelerator_table_[accelerator] = browser::kAcceleratorMap[i].command_id; // Also register with the focus manager. diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc index 616bf59..4774b4c 100644 --- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc +++ b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc @@ -12,6 +12,7 @@ #include "chrome/browser/ui/views/keyboard_overlay_delegate.h" #include "content/public/browser/native_web_keyboard_event.h" #include "grit/generated_resources.h" +#include "ui/base/events.h" #include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/screen.h" @@ -22,13 +23,11 @@ namespace { struct Accelerator { ui::KeyboardCode keycode; - bool shift_pressed; - bool ctrl_pressed; - bool alt_pressed; -} kCloseAccelerators[] = { - {ui::VKEY_OEM_2, false, true, true}, - {ui::VKEY_OEM_2, true, true, true}, - {ui::VKEY_ESCAPE, true, false, false}, + int modifiers; +} const kCloseAccelerators[] = { + {ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}, + {ui::VKEY_OEM_2, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}, + {ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN}, }; } // namespace @@ -47,20 +46,16 @@ KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { void KeyboardOverlayDialogView::RegisterDialogAccelerators() { for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { ui::Accelerator accelerator(kCloseAccelerators[i].keycode, - kCloseAccelerators[i].shift_pressed, - kCloseAccelerators[i].ctrl_pressed, - kCloseAccelerators[i].alt_pressed); + kCloseAccelerators[i].modifiers); close_accelerators_.insert(accelerator); AddAccelerator(accelerator); } for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { ui::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, - browser::kAcceleratorMap[i].shift_pressed, - browser::kAcceleratorMap[i].ctrl_pressed, - browser::kAcceleratorMap[i].alt_pressed); + browser::kAcceleratorMap[i].modifiers); // Skip a sole ALT key since it's handled on the keyboard overlay. - if (ui::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { + if (ui::Accelerator(ui::VKEY_MENU, ui::EF_NONE) == accelerator) { continue; } // Skip accelerators for closing the dialog since they are already added. |