Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: ui/events/keycodes/keyboard_code_conversion_x.cc

Issue 1103263004: Set ui::KeyEvent::key_ (DOM Level 3 key) under X11. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments (wez@) Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..a73d03f970fd494a9bce47d68a5746e4ac4fc893 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
@@ -899,6 +900,23 @@ uint16 GetCharacterFromXEvent(const XEvent* xev) {
return GetUnicodeCharacterFromXKeySym(keysym);
}
+void GetMeaningFromXEvent(const XEvent* xev, DomKey* key, base::char16* ch) {
+ XEvent xkeyevent = {0};
+ const XKeyEvent* xkey = NULL;
+ if (xev->type == GenericEvent) {
+ // Convert the XI2 key event into a core key event so that we can
+ // continue to use XLookupString() until crbug.com/367732 is complete.
+ InitXKeyEventFromXIDeviceEvent(*xev, &xkeyevent);
+ xkey = &xkeyevent.xkey;
+ } else {
+ xkey = &xev->xkey;
+ }
+ KeySym keysym = XK_VoidSymbol;
+ XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL);
+ *ch = GetUnicodeCharacterFromXKeySym(keysym);
+ *key = XKeySymToDomKey(keysym, *ch);
+}
+
KeyboardCode DefaultKeyboardCodeFromHardwareKeycode(
unsigned int hardware_code) {
// This function assumes that X11 is using evdev-based keycodes.

Powered by Google App Engine
This is Rietveld 408576698