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

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

Issue 1310513010: Support DomCode on Android devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master_evdev
Patch Set: Created 5 years, 3 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_android.cc
diff --git a/ui/events/keycodes/keyboard_code_conversion_android.cc b/ui/events/keycodes/keyboard_code_conversion_android.cc
index 6d7a0cb564a67b165e52d0f710790314d0a337b3..9af092237f4a7629701e693c9aef0b62e40b433d 100644
--- a/ui/events/keycodes/keyboard_code_conversion_android.cc
+++ b/ui/events/keycodes/keyboard_code_conversion_android.cc
@@ -5,11 +5,26 @@
#include "ui/events/keycodes/keyboard_code_conversion_android.h"
#include <android/keycodes.h>
+#include "base/macros.h"
+#include "ui/events/keycodes/dom/dom_code.h"
namespace ui {
namespace {
+struct KeyCodeDomCodeEntry {
+ uint32_t usb_keycode;
+ int android_keycode;
+};
+
+#define USB_KEYMAP_DECLARATION const KeyCodeDomCodeEntry usb_keycode_map[] =
+#define USB_KEYMAP(usb, android, evdev, xkb, win, mac, code, id) {usb, android}
+#include "ui/events/keycodes/dom/keycode_converter_data.inc"
+#undef USB_KEYMAP
+#undef USB_KEYMAP_DECLARATION
+
+const size_t kKeycodeMapEntries = arraysize(usb_keycode_map);
+
// The Android NDK does not provide values for these yet:
enum {
AKEYCODE_ESCAPE = 111,
@@ -305,4 +320,12 @@ KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode) {
}
}
+DomCode DomCodeFromAndroidKeyCode(int keycode) {
+ for (size_t i = 0; i < kKeycodeMapEntries; ++i) {
+ if (usb_keycode_map[i].android_keycode == keycode)
+ return static_cast<DomCode>(usb_keycode_map[i].usb_keycode);
+ }
+ return DomCode::NONE;
+}
+
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698