| 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/accelerators/accelerator_table.h" | 5 #include "ash/accelerators/accelerator_table.h" |
| 6 | 6 |
| 7 #include "ash/strings/grit/ash_strings.h" | |
| 8 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 9 | 8 |
| 10 namespace ash { | 9 namespace ash { |
| 11 | 10 |
| 12 const AcceleratorData kAcceleratorData[] = { | 11 const AcceleratorData kAcceleratorData[] = { |
| 13 // We have to define 3 entries for Shift+Alt. VKEY_[LR]MENU might be sent to | 12 // We have to define 3 entries for Shift+Alt. VKEY_[LR]MENU might be sent to |
| 14 // the accelerator controller when RenderWidgetHostViewAura is focused, and | 13 // the accelerator controller when RenderWidgetHostViewAura is focused, and |
| 15 // VKEY_MENU might be when it's not (e.g. when NativeWidgetAura is focused). | 14 // VKEY_MENU might be when it's not (e.g. when NativeWidgetAura is focused). |
| 16 { false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME }, | 15 { false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME }, |
| 17 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME }, | 16 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME }, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 47 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 46 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 48 TAKE_PARTIAL_SCREENSHOT }, | 47 TAKE_PARTIAL_SCREENSHOT }, |
| 49 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN }, | 48 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN }, |
| 50 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN }, | 49 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN }, |
| 51 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP }, | 50 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP }, |
| 52 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP }, | 51 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP }, |
| 53 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 52 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 54 MAGNIFY_SCREEN_ZOOM_OUT}, | 53 MAGNIFY_SCREEN_ZOOM_OUT}, |
| 55 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 54 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 56 MAGNIFY_SCREEN_ZOOM_IN}, | 55 MAGNIFY_SCREEN_ZOOM_IN}, |
| 57 { true, ui::VKEY_L, ui::EF_COMMAND_DOWN, LOCK_SCREEN }, | 56 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN }, |
| 58 // The lock key on Chrome OS keyboards produces F13 scancodes. | 57 // The lock key on Chrome OS keyboards produces F13 scancodes. |
| 59 { true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED }, | 58 { true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED }, |
| 60 { false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED }, | 59 { false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED }, |
| 61 // Generic keyboards can use VKEY_SLEEP to mimic ChromeOS keyboard's lock key. | 60 // Generic keyboards can use VKEY_SLEEP to mimic ChromeOS keyboard's lock key. |
| 62 { true, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_PRESSED }, | 61 { true, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_PRESSED }, |
| 63 { false, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_RELEASED }, | 62 { false, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_RELEASED }, |
| 64 { true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED }, | 63 { true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED }, |
| 65 { false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED }, | 64 { false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED }, |
| 66 { true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 65 { true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 67 OPEN_FILE_MANAGER }, | 66 OPEN_FILE_MANAGER }, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 94 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, | 93 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, |
| 95 TOGGLE_TOUCH_VIEW_TESTING }, | 94 TOGGLE_TOUCH_VIEW_TESTING }, |
| 96 // Single shift release turns off caps lock. | 95 // Single shift release turns off caps lock. |
| 97 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 96 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
| 98 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 97 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
| 99 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 98 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
| 100 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, | 99 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, |
| 101 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, | 100 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, |
| 102 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, | 101 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, |
| 103 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, | 102 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, |
| 104 { true, ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, SHOW_TASK_MANAGER }, | |
| 105 #else // defined(OS_CHROMEOS) | |
| 106 // This key has been deprecated on CrOS. It is instead included below in the | |
| 107 // |kDeprecatedAccelerators|, and above in the CrOS accelerators as | |
| 108 // Search+Esc. | |
| 109 { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER }, | |
| 110 #endif // defined(OS_CHROMEOS) | 103 #endif // defined(OS_CHROMEOS) |
| 111 { true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE }, | 104 { true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE }, |
| 112 #if !defined(OS_WIN) | 105 #if !defined(OS_WIN) |
| 113 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT }, | 106 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT }, |
| 114 #endif | 107 #endif |
| 115 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 108 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 116 NEW_INCOGNITO_WINDOW }, | 109 NEW_INCOGNITO_WINDOW }, |
| 117 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW }, | 110 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW }, |
| 118 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB }, | 111 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB }, |
| 119 { true, ui::VKEY_OEM_MINUS, | 112 { true, ui::VKEY_OEM_MINUS, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 140 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 133 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 141 SHOW_KEYBOARD_OVERLAY }, | 134 SHOW_KEYBOARD_OVERLAY }, |
| 142 { true, ui::VKEY_OEM_2, | 135 { true, ui::VKEY_OEM_2, |
| 143 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 136 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 144 SHOW_KEYBOARD_OVERLAY }, | 137 SHOW_KEYBOARD_OVERLAY }, |
| 145 { true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY }, | 138 { true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY }, |
| 146 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 139 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 147 SHOW_MESSAGE_CENTER_BUBBLE }, | 140 SHOW_MESSAGE_CENTER_BUBBLE }, |
| 148 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 141 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 149 SHOW_SYSTEM_TRAY_BUBBLE }, | 142 SHOW_SYSTEM_TRAY_BUBBLE }, |
| 143 { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER }, |
| 150 { true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0 }, | 144 { true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0 }, |
| 151 { true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1 }, | 145 { true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1 }, |
| 152 { true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2 }, | 146 { true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2 }, |
| 153 { true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3 }, | 147 { true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3 }, |
| 154 { true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4 }, | 148 { true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4 }, |
| 155 { true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5 }, | 149 { true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5 }, |
| 156 { true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6 }, | 150 { true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6 }, |
| 157 { true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7 }, | 151 { true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7 }, |
| 158 { true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP }, | 152 { true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP }, |
| 159 | 153 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 181 { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, | 175 { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, |
| 182 { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, | 176 { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, |
| 183 { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, | 177 { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, |
| 184 | 178 |
| 185 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and | 179 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and |
| 186 // VKEY_MEDIA_LAUNCH_MAIL. | 180 // VKEY_MEDIA_LAUNCH_MAIL. |
| 187 }; | 181 }; |
| 188 | 182 |
| 189 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); | 183 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); |
| 190 | 184 |
| 191 // Instructions for how to deprecate and replace an Accelerator: | |
| 192 // | |
| 193 // 1- Replace the old deprecated accelerator from the above list with the new | |
| 194 // accelerator that will take its place. | |
| 195 // 2- Add an entry for it in the following |kDeprecatedAccelerators| list. | |
| 196 // 3- That entry should contain the following: | |
| 197 // - The deprecated accelerator data you removed from above. | |
| 198 // - Define a histogram for this action in |histograms.xml| in the form | |
| 199 // "Ash.Accelerators.{ActionName}" and include the name of this histogram | |
| 200 // in this entry. | |
| 201 // - The ID of the localized notification message to give the users telling | |
| 202 // them about the deprecation (Add one in |ash_chromeos_strings.grdp|. | |
| 203 // Search for the comment <!-- Deprecated Accelerators Messages -->). | |
| 204 // - {true or false} whether the deprecated accelerator is still enabled (we | |
| 205 // don't disable a deprecated accelerator abruptly). | |
| 206 // 4- Don't forget to update the keyboard overlay. | |
| 207 #if defined(OS_CHROMEOS) | |
| 208 | |
| 209 const DeprecatedAcceleratorData kDeprecatedAccelerators[] = { | |
| 210 { | |
| 211 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN }, | |
| 212 "Ash.Accelerators.LockScreen", | |
| 213 IDS_DEPRECATED_LOCK_SCREEN_MSG, | |
| 214 true | |
| 215 }, | |
| 216 { | |
| 217 { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER }, | |
| 218 "Ash.Accelerators.ShowTaskManager", | |
| 219 IDS_DEPRECATED_SHOW_TASK_MANAGER_MSG, | |
| 220 true | |
| 221 }, | |
| 222 }; | |
| 223 | |
| 224 const size_t kDeprecatedAcceleratorsLength = arraysize(kDeprecatedAccelerators); | |
| 225 | |
| 226 #endif // defined(OS_CHROMEOS) | |
| 227 | |
| 228 const AcceleratorData kDebugAcceleratorData[] = { | 185 const AcceleratorData kDebugAcceleratorData[] = { |
| 229 #if defined(OS_CHROMEOS) | 186 #if defined(OS_CHROMEOS) |
| 230 // Extra shortcut for debug build to control magnifier on linux desktop. | 187 // Extra shortcut for debug build to control magnifier on linux desktop. |
| 231 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, | 188 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, |
| 232 MAGNIFY_SCREEN_ZOOM_OUT}, | 189 MAGNIFY_SCREEN_ZOOM_OUT}, |
| 233 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, | 190 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, |
| 234 // Extra shortcuts to lock the screen on linux desktop. | 191 // Extra shortcuts to lock the screen on linux desktop. |
| 235 { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN }, | 192 { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN }, |
| 236 { true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED }, | 193 { true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED }, |
| 237 { false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED }, | 194 { false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED }, |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 WINDOW_MINIMIZE, | 418 WINDOW_MINIMIZE, |
| 462 TOGGLE_FULLSCREEN, | 419 TOGGLE_FULLSCREEN, |
| 463 TOGGLE_MAXIMIZED, | 420 TOGGLE_MAXIMIZED, |
| 464 WINDOW_POSITION_CENTER, | 421 WINDOW_POSITION_CENTER, |
| 465 ROTATE_WINDOW, | 422 ROTATE_WINDOW, |
| 466 }; | 423 }; |
| 467 | 424 |
| 468 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow); | 425 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow); |
| 469 | 426 |
| 470 } // namespace ash | 427 } // namespace ash |
| OLD | NEW |