summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-24 22:42:11 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-24 22:42:11 +0000
commit13591707357cb70489306575ac4a12026ee71d51 (patch)
tree9418d9bb80e2bf6a8fba35a783d09591c6b790ee
parent33133665985db413c0fa2bf6e5d5cd679255aff8 (diff)
downloadchromium_src-13591707357cb70489306575ac4a12026ee71d51.zip
chromium_src-13591707357cb70489306575ac4a12026ee71d51.tar.gz
chromium_src-13591707357cb70489306575ac4a12026ee71d51.tar.bz2
Merge 163397 - 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 TBR=yusukes@chromium.org Review URL: https://codereview.chromium.org/11271013 git-svn-id: svn://svn.chromium.org/chrome/branches/1271/src@163937 0039d316-1c4b-4281-b951-d872f2087c98
-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: