summaryrefslogtreecommitdiffstats
path: root/ui/base/keycodes
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-22 22:04:17 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-22 22:04:17 +0000
commitdd3bf8e2b94fb9fecbab0c2303521c4684cab5d0 (patch)
tree68d506693f2bdb62e65099ecffd4c0aba3b4fc17 /ui/base/keycodes
parentf4a4b0ed743b1c56b884d9364759adeca5d64479 (diff)
downloadchromium_src-dd3bf8e2b94fb9fecbab0c2303521c4684cab5d0.zip
chromium_src-dd3bf8e2b94fb9fecbab0c2303521c4684cab5d0.tar.gz
chromium_src-dd3bf8e2b94fb9fecbab0c2303521c4684cab5d0.tar.bz2
Support Help and Fn keys on Stout.
The scancodes for these keys are <FK14> and <FK15> respectively, that are translated to XF86XK_Launch5 and XF86XK_Launch6 XKeySyms. We have to convert the XKeySyms to valid VKEYs so that they are not filtered out as invalid keys. BUG=chrome-os-partner:14339 TEST=manually with an old Apple keyboard which has F13-19 keys Review URL: https://codereview.chromium.org/11238039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163397 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/keycodes')
-rw-r--r--ui/base/keycodes/keyboard_code_conversion_x.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/ui/base/keycodes/keyboard_code_conversion_x.cc b/ui/base/keycodes/keyboard_code_conversion_x.cc
index 3548dcf..d571ce8 100644
--- a/ui/base/keycodes/keyboard_code_conversion_x.cc
+++ b/ui/base/keycodes/keyboard_code_conversion_x.cc
@@ -336,6 +336,24 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) {
case XK_KP_F4:
return static_cast<KeyboardCode>(VKEY_F1 + (keysym - XK_KP_F1));
+ // When evdev is in use, /usr/share/X11/xkb/symbols/inet maps F13-18 keys
+ // to the special XF86XK symbols to support Microsoft Ergonomic keyboards:
+ // https://bugs.freedesktop.org/show_bug.cgi?id=5783
+ // In Chrome, we map these X key symbols back to F13-18 since we don't have
+ // VKEYs for these XF86XK symbols.
+ case XF86XK_Tools:
+ return VKEY_F13;
+ case XF86XK_Launch5:
+ return VKEY_F14;
+ case XF86XK_Launch6:
+ return VKEY_F15;
+ case XF86XK_Launch7:
+ return VKEY_F16;
+ case XF86XK_Launch8:
+ return VKEY_F17;
+ case XF86XK_Launch9:
+ return VKEY_F18;
+
#if defined(TOOLKIT_GTK)
case XF86XK_Refresh:
case XF86XK_History: