Chromium Code Reviews| Index: ui/base/keycodes/keyboard_code_conversion_x.cc |
| diff --git a/ui/base/keycodes/keyboard_code_conversion_x.cc b/ui/base/keycodes/keyboard_code_conversion_x.cc |
| index d9eaa9f9a93972a4a013d9c63dad0ad7f834cc9d..934e9e27a2e3812a617bf7aef93a1538efb72db9 100644 |
| --- a/ui/base/keycodes/keyboard_code_conversion_x.cc |
| +++ b/ui/base/keycodes/keyboard_code_conversion_x.cc |
| @@ -4,6 +4,7 @@ |
| #include "ui/base/keycodes/keyboard_code_conversion_x.h" |
| +#define XK_3270 // for XK_3270_BackTab |
|
sadrul
2011/12/05 16:00:28
This ... looks weird. Why is this necessary? Is th
Yusuke Sato
2011/12/06 04:30:39
The Xlib reference manual says "This file declares
|
| #include <X11/keysym.h> |
| #include <X11/Xlib.h> |
| #include <X11/Xutil.h> |
| @@ -30,9 +31,6 @@ KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev) { |
| } |
| KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { |
| - // Consult GDK key translation (in WindowsKeyCodeForGdkKeyCode) for details |
| - // about the following translations. |
| - |
| // TODO(sad): Have |keysym| go through the X map list? |
| switch (keysym) { |
| @@ -43,10 +41,13 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { |
| return VKEY_DELETE; |
| case XK_Tab: |
| case XK_KP_Tab: |
| + case XK_ISO_Left_Tab: |
| + case XK_3270_BackTab: |
| return VKEY_TAB; |
| case XK_Linefeed: |
| case XK_Return: |
| case XK_KP_Enter: |
| + case XK_ISO_Enter: |
| return VKEY_RETURN; |
| case XK_Clear: |
| return VKEY_CLEAR; |
| @@ -79,6 +80,15 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { |
| return VKEY_UP; |
| case XK_Escape: |
| return VKEY_ESCAPE; |
| + case XK_Kana_Lock: |
| + case XK_Kana_Shift: |
| + return VKEY_KANA; |
| + case XK_Hangul: |
| + return VKEY_HANGUL; |
| + case XK_Hangul_Hanja: |
| + return VKEY_HANJA; |
| + case XK_Kanji: |
| + return VKEY_KANJI; |
| case XK_A: |
| case XK_a: |
| return VKEY_A; |
| @@ -182,6 +192,27 @@ KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { |
| case XK_KP_9: |
| return static_cast<KeyboardCode>(VKEY_NUMPAD0 + (keysym - XK_KP_0)); |
| + case XK_parenright: |
| + return VKEY_0; |
| + case XK_exclam: |
| + return VKEY_1; |
| + case XK_at: |
| + return VKEY_2; |
| + case XK_numbersign: |
| + return VKEY_3; |
| + case XK_dollar: |
| + return VKEY_4; |
| + case XK_percent: |
| + return VKEY_5; |
| + case XK_asciicircum: |
| + return VKEY_6; |
| + case XK_ampersand: |
| + return VKEY_7; |
| + case XK_asterisk: |
| + return VKEY_8; |
| + case XK_parenleft: |
| + return VKEY_9; |
| + |
| case XK_multiply: |
| case XK_KP_Multiply: |
| return VKEY_MULTIPLY; |