summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/accelerators/accelerator_table.cc4
-rw-r--r--chrome/browser/ui/views/accelerator_table.cc132
-rw-r--r--ui/base/keycodes/keyboard_code_conversion_x.cc51
3 files changed, 101 insertions, 86 deletions
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index bbe3229..c225674 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -55,6 +55,7 @@ const AcceleratorData kAcceleratorData[] = {
{ true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT },
// On Chrome OS, Search key is mapped to LWIN.
{ true, ui::VKEY_LWIN, ui::EF_NONE, SEARCH_KEY },
+ { true, ui::VKEY_BROWSER_SEARCH, 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 },
@@ -112,6 +113,9 @@ const AcceleratorData kAcceleratorData[] = {
{ true, ui::VKEY_HOME, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
MONITOR_TOGGLE_SCALE },
#endif
+
+ // TODO(yusukes): Handle VKEY_MEDIA_STOP, VKEY_MEDIA_PLAY_PAUSE,
+ // VKEY_MEDIA_LAUNCH_MAIL, and VKEY_MEDIA_LAUNCH_APP2 (aka Calculator button).
};
const size_t kAcceleratorDataLength = arraysize(kAcceleratorData);
diff --git a/chrome/browser/ui/views/accelerator_table.cc b/chrome/browser/ui/views/accelerator_table.cc
index 2f27ce0..c8dd278 100644
--- a/chrome/browser/ui/views/accelerator_table.cc
+++ b/chrome/browser/ui/views/accelerator_table.cc
@@ -18,108 +18,35 @@ namespace browser {
const AcceleratorMapping kAcceleratorMap[] = {
{ ui::VKEY_LEFT, ui::EF_ALT_DOWN, IDC_BACK },
{ ui::VKEY_BACK, ui::EF_NONE, IDC_BACK },
-#if defined(OS_CHROMEOS)
- { ui::VKEY_F1, ui::EF_NONE, IDC_BACK },
-#endif
{ 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, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
- IDC_CLEAR_BROWSING_DATA },
-#else
- { ui::VKEY_BACK, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
- IDC_CLEAR_BROWSING_DATA },
-#endif
-#if !defined(OS_CHROMEOS)
- { ui::VKEY_F4, ui::EF_CONTROL_DOWN, IDC_CLOSE_TAB },
-#endif
{ 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, ui::EF_ALT_DOWN, IDC_CLOSE_WINDOW },
-#endif
-#if !defined(USE_ASH)
- { ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT },
-#endif
{ 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, ui::EF_NONE, IDC_FIND_NEXT },
-#endif
{ ui::VKEY_G, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_FIND_PREVIOUS },
-#if !defined(OS_CHROMEOS)
- { ui::VKEY_F3, ui::EF_SHIFT_DOWN, IDC_FIND_PREVIOUS },
-#endif
{ 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, 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, ui::EF_CONTROL_DOWN, IDC_FOCUS_NEXT_PANE },
-#endif
-#if !defined(OS_CHROMEOS)
- { ui::VKEY_F6, ui::EF_SHIFT_DOWN, IDC_FOCUS_PREVIOUS_PANE },
-#else
- { 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, ui::EF_NONE, IDC_FORWARD },
-#endif
-#if !defined(OS_CHROMEOS)
- { ui::VKEY_F11, ui::EF_NONE, IDC_FULLSCREEN },
-#else
- { ui::VKEY_F4, ui::EF_NONE, IDC_FULLSCREEN },
-#endif
-#if !defined(OS_CHROMEOS)
- { ui::VKEY_F1, ui::EF_NONE, IDC_HELP_PAGE },
-#else
- { 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, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_DEV_TOOLS },
-#if defined(OS_CHROMEOS)
- { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FEEDBACK },
-#endif
{ 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, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
- IDC_NEW_INCOGNITO_WINDOW },
- { ui::VKEY_T, ui::EF_CONTROL_DOWN, IDC_NEW_TAB },
- { 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, 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, 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 },
-#if !defined(USE_ASH)
- { ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_RESTORE_TAB },
-#endif
{ 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 },
@@ -152,13 +79,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ 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, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_SHOW_AVATAR_MENU},
-#endif
{ ui::VKEY_ESCAPE, ui::EF_NONE, IDC_STOP },
-#if !defined(USE_ASH)
- { ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, IDC_TASK_MANAGER },
-#endif
{ 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 },
@@ -171,6 +92,59 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ 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 },
+
+ // Platform-specific key maps.
+#if defined(OS_CHROMEOS)
+ // On Chrome OS, VKEY_BROWSER_SEARCH is handled in Ash.
+ { ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK },
+ { ui::VKEY_F1, ui::EF_NONE, IDC_BACK },
+ { ui::VKEY_BACK, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ IDC_CLEAR_BROWSING_DATA },
+ { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FEEDBACK },
+ { ui::VKEY_F2, ui::EF_CONTROL_DOWN, IDC_FOCUS_NEXT_PANE },
+ { ui::VKEY_F1, ui::EF_CONTROL_DOWN, IDC_FOCUS_PREVIOUS_PANE },
+ { ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD },
+ { ui::VKEY_F2, ui::EF_NONE, IDC_FORWARD },
+ { ui::VKEY_F4, ui::EF_NONE, IDC_FULLSCREEN },
+ { 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 },
+ { ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME },
+ { ui::VKEY_BROWSER_REFRESH, ui::EF_NONE, IDC_RELOAD },
+ { 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 },
+ { ui::VKEY_BROWSER_FAVORITES, ui::EF_NONE, IDC_SHOW_BOOKMARK_MANAGER },
+ { ui::VKEY_BROWSER_STOP, ui::EF_NONE, IDC_STOP },
+#else // OS_CHROMEOS
+ { ui::VKEY_DELETE, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ IDC_CLEAR_BROWSING_DATA },
+ { ui::VKEY_F4, ui::EF_CONTROL_DOWN, IDC_CLOSE_TAB },
+ { ui::VKEY_F4, ui::EF_ALT_DOWN, IDC_CLOSE_WINDOW },
+ { ui::VKEY_F3, ui::EF_NONE, IDC_FIND_NEXT },
+ { ui::VKEY_F3, ui::EF_SHIFT_DOWN, IDC_FIND_PREVIOUS },
+ { 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 },
+ { ui::VKEY_F6, ui::EF_SHIFT_DOWN, IDC_FOCUS_PREVIOUS_PANE },
+ // On Windows, all VKEY_BROWSER_* keys except VKEY_BROWSER_SEARCH are handled
+ // via WM_APPCOMMAND.
+ { ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, IDC_FOCUS_SEARCH },
+ { ui::VKEY_F11, ui::EF_NONE, IDC_FULLSCREEN },
+ { ui::VKEY_F1, ui::EF_NONE, IDC_HELP_PAGE },
+ { 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 },
+ { ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_SHOW_AVATAR_MENU},
+#endif // OS_CHROMEOS
+#if !defined(USE_ASH)
+ { ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT },
+ { ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ IDC_NEW_INCOGNITO_WINDOW },
+ { ui::VKEY_T, ui::EF_CONTROL_DOWN, IDC_NEW_TAB },
+ { ui::VKEY_N, ui::EF_CONTROL_DOWN, IDC_NEW_WINDOW },
+ { ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_RESTORE_TAB },
+ { ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, IDC_TASK_MANAGER },
+#endif
};
const size_t kAcceleratorMapLength = arraysize(kAcceleratorMap);
diff --git a/ui/base/keycodes/keyboard_code_conversion_x.cc b/ui/base/keycodes/keyboard_code_conversion_x.cc
index 1e32090..6e8af8a 100644
--- a/ui/base/keycodes/keyboard_code_conversion_x.cc
+++ b/ui/base/keycodes/keyboard_code_conversion_x.cc
@@ -331,18 +331,11 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) {
return static_cast<KeyboardCode>(VKEY_F1 + (keysym - XK_F1));
#if defined(TOOLKIT_GTK)
- case XF86XK_HomePage:
- case XF86XK_Search:
- case XF86XK_Back:
- case XF86XK_Forward:
- case XF86XK_Stop:
case XF86XK_Refresh:
- case XF86XK_Favorites:
case XF86XK_History:
case XF86XK_OpenURL:
case XF86XK_AddFavorite:
case XF86XK_Go:
- case XF86XK_Reload:
case XF86XK_ZoomIn:
case XF86XK_ZoomOut:
// ui::AcceleratorGtk tries to convert the XF86XK_ keysyms on Chrome
@@ -352,12 +345,34 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) {
#endif
// For supporting multimedia buttons on a USB keyboard.
+ case XF86XK_Back:
+ return VKEY_BROWSER_BACK;
+ case XF86XK_Forward:
+ return VKEY_BROWSER_FORWARD;
+ case XF86XK_Reload:
+ return VKEY_BROWSER_REFRESH;
+ case XF86XK_Stop:
+ return VKEY_BROWSER_STOP;
+ case XF86XK_Search:
+ return VKEY_BROWSER_SEARCH;
+ case XF86XK_Favorites:
+ return VKEY_BROWSER_FAVORITES;
+ case XF86XK_HomePage:
+ return VKEY_BROWSER_HOME;
case XF86XK_AudioMute:
return VKEY_VOLUME_MUTE;
case XF86XK_AudioLowerVolume:
return VKEY_VOLUME_DOWN;
case XF86XK_AudioRaiseVolume:
return VKEY_VOLUME_UP;
+ case XF86XK_AudioStop:
+ return VKEY_MEDIA_STOP;
+ case XF86XK_AudioPlay:
+ return VKEY_MEDIA_PLAY_PAUSE;
+ case XF86XK_Mail:
+ return VKEY_MEDIA_LAUNCH_MAIL;
+ case XF86XK_Calculator:
+ return VKEY_MEDIA_LAUNCH_APP2;
case XF86XK_MonBrightnessDown:
return VKEY_BRIGHTNESS_DOWN;
case XF86XK_MonBrightnessUp:
@@ -674,12 +689,34 @@ int XKeysymForWindowsKeyCode(KeyboardCode keycode, bool shift) {
case VKEY_F24:
return XK_F1 + (keycode - VKEY_F1);
+ case VKEY_BROWSER_BACK:
+ return XF86XK_Back;
+ case VKEY_BROWSER_FORWARD:
+ return XF86XK_Forward;
+ case VKEY_BROWSER_REFRESH:
+ return XF86XK_Reload;
+ case VKEY_BROWSER_STOP:
+ return XF86XK_Stop;
+ case VKEY_BROWSER_SEARCH:
+ return XF86XK_Search;
+ case VKEY_BROWSER_FAVORITES:
+ return XF86XK_Favorites;
+ case VKEY_BROWSER_HOME:
+ return XF86XK_HomePage;
case VKEY_VOLUME_MUTE:
return XF86XK_AudioMute;
case VKEY_VOLUME_DOWN:
return XF86XK_AudioLowerVolume;
case VKEY_VOLUME_UP:
return XF86XK_AudioRaiseVolume;
+ case VKEY_MEDIA_STOP:
+ return XF86XK_AudioStop;
+ case VKEY_MEDIA_PLAY_PAUSE:
+ return XF86XK_AudioPlay;
+ case VKEY_MEDIA_LAUNCH_MAIL:
+ return XF86XK_Mail;
+ case VKEY_MEDIA_LAUNCH_APP2:
+ return XF86XK_Calculator;
case VKEY_BRIGHTNESS_DOWN:
return XF86XK_MonBrightnessDown;
case VKEY_BRIGHTNESS_UP: