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" | |
7 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
8 | 9 |
9 namespace ash { | 10 namespace ash { |
10 | 11 |
11 const AcceleratorData kAcceleratorData[] = { | 12 const AcceleratorData kAcceleratorData[] = { |
12 // We have to define 3 entries for Shift+Alt. VKEY_[LR]MENU might be sent to | 13 // We have to define 3 entries for Shift+Alt. VKEY_[LR]MENU might be sent to |
13 // the accelerator controller when RenderWidgetHostViewAura is focused, and | 14 // the accelerator controller when RenderWidgetHostViewAura is focused, and |
14 // VKEY_MENU might be when it's not (e.g. when NativeWidgetAura is focused). | 15 // VKEY_MENU might be when it's not (e.g. when NativeWidgetAura is focused). |
15 { false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME }, | 16 { false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME }, |
16 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME }, | 17 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME }, |
(...skipping 29 matching lines...) Expand all Loading... | |
46 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 47 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
47 TAKE_PARTIAL_SCREENSHOT }, | 48 TAKE_PARTIAL_SCREENSHOT }, |
48 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN }, | 49 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN }, |
49 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN }, | 50 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN }, |
50 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP }, | 51 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP }, |
51 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP }, | 52 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP }, |
52 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 53 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
53 MAGNIFY_SCREEN_ZOOM_OUT}, | 54 MAGNIFY_SCREEN_ZOOM_OUT}, |
54 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 55 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
55 MAGNIFY_SCREEN_ZOOM_IN}, | 56 MAGNIFY_SCREEN_ZOOM_IN}, |
56 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN }, | 57 { true, ui::VKEY_L, ui::EF_COMMAND_DOWN, LOCK_SCREEN }, |
57 // The lock key on Chrome OS keyboards produces F13 scancodes. | 58 // The lock key on Chrome OS keyboards produces F13 scancodes. |
58 { true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED }, | 59 { true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED }, |
59 { false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED }, | 60 { false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED }, |
60 // Generic keyboards can use VKEY_SLEEP to mimic ChromeOS keyboard's lock key. | 61 // Generic keyboards can use VKEY_SLEEP to mimic ChromeOS keyboard's lock key. |
61 { true, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_PRESSED }, | 62 { true, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_PRESSED }, |
62 { false, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_RELEASED }, | 63 { false, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_RELEASED }, |
63 { true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED }, | 64 { true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED }, |
64 { false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED }, | 65 { false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED }, |
65 { true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 66 { true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
66 OPEN_FILE_MANAGER }, | 67 OPEN_FILE_MANAGER }, |
(...skipping 26 matching lines...) Expand all Loading... | |
93 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, | 94 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, |
94 TOGGLE_TOUCH_VIEW_TESTING }, | 95 TOGGLE_TOUCH_VIEW_TESTING }, |
95 // Single shift release turns off caps lock. | 96 // Single shift release turns off caps lock. |
96 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 97 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
97 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 98 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
98 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 99 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
99 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, | 100 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, |
100 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, | 101 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, |
101 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, | 102 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, |
102 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, | 103 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, |
104 { true, ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, SHOW_TASK_MANAGER }, | |
oshima
2015/06/19 21:21:45
Shouldn't we use VKEY_LWIN ?
afakhry
2015/06/19 22:14:19
No VKEY_LWIN is the key code and we already have V
oshima
2015/06/19 23:04:20
Ah, sorry for my confusion.
| |
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 }, | |
103 #endif // defined(OS_CHROMEOS) | 110 #endif // defined(OS_CHROMEOS) |
104 { true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE }, | 111 { true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE }, |
105 #if !defined(OS_WIN) | 112 #if !defined(OS_WIN) |
106 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT }, | 113 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT }, |
107 #endif | 114 #endif |
108 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 115 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
109 NEW_INCOGNITO_WINDOW }, | 116 NEW_INCOGNITO_WINDOW }, |
110 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW }, | 117 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW }, |
111 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB }, | 118 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB }, |
112 { true, ui::VKEY_OEM_MINUS, | 119 { true, ui::VKEY_OEM_MINUS, |
(...skipping 20 matching lines...) Expand all Loading... | |
133 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 140 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
134 SHOW_KEYBOARD_OVERLAY }, | 141 SHOW_KEYBOARD_OVERLAY }, |
135 { true, ui::VKEY_OEM_2, | 142 { true, ui::VKEY_OEM_2, |
136 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 143 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
137 SHOW_KEYBOARD_OVERLAY }, | 144 SHOW_KEYBOARD_OVERLAY }, |
138 { true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY }, | 145 { true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY }, |
139 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 146 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
140 SHOW_MESSAGE_CENTER_BUBBLE }, | 147 SHOW_MESSAGE_CENTER_BUBBLE }, |
141 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | 148 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
142 SHOW_SYSTEM_TRAY_BUBBLE }, | 149 SHOW_SYSTEM_TRAY_BUBBLE }, |
143 { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER }, | |
144 { true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0 }, | 150 { true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0 }, |
145 { true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1 }, | 151 { true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1 }, |
146 { true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2 }, | 152 { true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2 }, |
147 { true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3 }, | 153 { true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3 }, |
148 { true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4 }, | 154 { true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4 }, |
149 { true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5 }, | 155 { true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5 }, |
150 { true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6 }, | 156 { true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6 }, |
151 { true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7 }, | 157 { true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7 }, |
152 { true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP }, | 158 { true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP }, |
153 | 159 |
(...skipping 21 matching lines...) Expand all Loading... | |
175 { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, | 181 { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, |
176 { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, | 182 { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, |
177 { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, | 183 { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, |
178 | 184 |
179 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and | 185 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and |
180 // VKEY_MEDIA_LAUNCH_MAIL. | 186 // VKEY_MEDIA_LAUNCH_MAIL. |
181 }; | 187 }; |
182 | 188 |
183 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); | 189 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); |
184 | 190 |
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 | |
208 const DeprecatedAcceleratorData kDeprecatedAccelerators[] = { | |
209 #if defined(OS_CHROMEOS) | |
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 #endif // defined(OS_CHROMEOS) | |
223 }; | |
224 | |
225 const size_t kDeprecatedAcceleratorsLength = arraysize(kDeprecatedAccelerators); | |
226 | |
185 const AcceleratorData kDebugAcceleratorData[] = { | 227 const AcceleratorData kDebugAcceleratorData[] = { |
186 #if defined(OS_CHROMEOS) | 228 #if defined(OS_CHROMEOS) |
187 // Extra shortcut for debug build to control magnifier on linux desktop. | 229 // Extra shortcut for debug build to control magnifier on linux desktop. |
188 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, | 230 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, |
189 MAGNIFY_SCREEN_ZOOM_OUT}, | 231 MAGNIFY_SCREEN_ZOOM_OUT}, |
190 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, | 232 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, |
191 // Extra shortcuts to lock the screen on linux desktop. | 233 // Extra shortcuts to lock the screen on linux desktop. |
192 { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN }, | 234 { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN }, |
193 { true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED }, | 235 { true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED }, |
194 { false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED }, | 236 { false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED }, |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
418 WINDOW_MINIMIZE, | 460 WINDOW_MINIMIZE, |
419 TOGGLE_FULLSCREEN, | 461 TOGGLE_FULLSCREEN, |
420 TOGGLE_MAXIMIZED, | 462 TOGGLE_MAXIMIZED, |
421 WINDOW_POSITION_CENTER, | 463 WINDOW_POSITION_CENTER, |
422 ROTATE_WINDOW, | 464 ROTATE_WINDOW, |
423 }; | 465 }; |
424 | 466 |
425 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow); | 467 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow); |
426 | 468 |
427 } // namespace ash | 469 } // namespace ash |
OLD | NEW |