| Index: ui/events/keycodes/keyboard_code_conversion_x.cc
|
| diff --git a/ui/events/keycodes/keyboard_code_conversion_x.cc b/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| index 48025c436939994b5fe2ebf9186a973182966adb..fa99f495c7d8e245db5b155d139e788b3d48b2f0 100644
|
| --- a/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| +++ b/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| @@ -19,6 +19,7 @@
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "ui/events/keycodes/dom4/keycode_converter.h"
|
| +#include "ui/events/keycodes/keyboard_code_conversion_xkb.h"
|
| #include "ui/events/x/keysym_to_unicode.h"
|
|
|
| #define VKEY_UNSUPPORTED VKEY_UNKNOWN
|
| @@ -883,7 +884,7 @@ DomCode CodeFromXEvent(const XEvent* xev) {
|
| return ui::KeycodeConverter::NativeKeycodeToDomCode(keycode);
|
| }
|
|
|
| -uint16 GetCharacterFromXEvent(const XEvent* xev) {
|
| +void GetMeaningFromXEvent(const XEvent* xev, DomKey* key, base::char16* ch) {
|
| XEvent xkeyevent = {0};
|
| const XKeyEvent* xkey = NULL;
|
| if (xev->type == GenericEvent) {
|
| @@ -896,7 +897,15 @@ uint16 GetCharacterFromXEvent(const XEvent* xev) {
|
| }
|
| KeySym keysym = XK_VoidSymbol;
|
| XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL);
|
| - return GetUnicodeCharacterFromXKeySym(keysym);
|
| + *ch = GetUnicodeCharacterFromXKeySym(keysym);
|
| + *key = XkbKeySymToDomKey(keysym, *ch);
|
| +}
|
| +
|
| +uint16 GetCharacterFromXEvent(const XEvent* xev) {
|
| + base::char16 ch;
|
| + DomKey key;
|
| + GetMeaningFromXEvent(xev, &key, &ch);
|
| + return ch;
|
| }
|
|
|
| KeyboardCode DefaultKeyboardCodeFromHardwareKeycode(
|
|
|