Index: ui/events/ozone/evdev/key_event_converter_evdev.cc |
diff --git a/ui/events/ozone/evdev/key_event_converter_evdev.cc b/ui/events/ozone/evdev/key_event_converter_evdev.cc |
index d59aa8307f983ea957dc551860c3790f6c994256..caf3f199528bd7251d4c2dc38c7dd7e5c9f65893 100644 |
--- a/ui/events/ozone/evdev/key_event_converter_evdev.cc |
+++ b/ui/events/ozone/evdev/key_event_converter_evdev.cc |
@@ -9,6 +9,7 @@ |
#include "base/message_loop/message_loop.h" |
#include "ui/events/event.h" |
+#include "ui/events/keycodes/dom4/keycode_converter.h" |
#include "ui/events/keycodes/keyboard_codes.h" |
#include "ui/events/ozone/evdev/event_modifiers_evdev.h" |
@@ -16,6 +17,8 @@ namespace ui { |
namespace { |
+const int kXkbKeycodeOffset = 8; |
+ |
ui::KeyboardCode KeyboardCodeFromButton(unsigned int code) { |
static const ui::KeyboardCode kLinuxBaseKeyMap[] = { |
ui::VKEY_UNKNOWN, // KEY_RESERVED |
@@ -262,7 +265,11 @@ void KeyEventConverterEvdev::ConvertKeyEvent(int key, int value) { |
int flags = modifiers_->GetModifierFlags(); |
- KeyEvent key_event(down ? ET_KEY_PRESSED : ET_KEY_RELEASED, code, flags); |
+ KeyEvent key_event( |
+ down ? ET_KEY_PRESSED : ET_KEY_RELEASED, |
+ code, |
+ KeycodeConverter::NativeKeycodeToCode(key + kXkbKeycodeOffset), |
+ flags); |
DispatchEventToCallback(&key_event); |
} |