From 4d080b30ab440df5fbf4ccfc2fc7f4c35ff50ccc Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 27 Jun 2025 14:45:23 +0300 Subject: [PATCH] LibInput: Pass raw scancode in KeyEvent --- userspace/libraries/LibInput/KeyEvent.cpp | 4 ++-- userspace/libraries/LibInput/KeyboardLayout.cpp | 1 + userspace/libraries/LibInput/include/LibInput/KeyEvent.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/userspace/libraries/LibInput/KeyEvent.cpp b/userspace/libraries/LibInput/KeyEvent.cpp index b183f014..28690dd2 100644 --- a/userspace/libraries/LibInput/KeyEvent.cpp +++ b/userspace/libraries/LibInput/KeyEvent.cpp @@ -46,7 +46,7 @@ namespace LibInput }; static_assert((size_t)Key::Count == sizeof(utf8_upper) / sizeof(*utf8_lower)); - KeyEvent event { .modifier = modifier, .key = key }; + KeyEvent event { .modifier = modifier, .scancode = 0, .key = key }; return (event.shift() ^ event.caps_lock()) ? utf8_upper[static_cast(key)] : utf8_lower[static_cast(key)]; } @@ -109,7 +109,7 @@ namespace LibInput }; static_assert((size_t)Key::Count == sizeof(utf8_upper) / sizeof(*utf8_upper)); - KeyEvent event { .modifier = modifier, .key = key }; + KeyEvent event { .modifier = modifier, .scancode = 0, .key = key }; if (event.ctrl()) return utf8_ctrl[static_cast(key)]; if (event.shift() ^ event.caps_lock()) diff --git a/userspace/libraries/LibInput/KeyboardLayout.cpp b/userspace/libraries/LibInput/KeyboardLayout.cpp index 992ea071..15ba1a7b 100644 --- a/userspace/libraries/LibInput/KeyboardLayout.cpp +++ b/userspace/libraries/LibInput/KeyboardLayout.cpp @@ -85,6 +85,7 @@ namespace LibInput { KeyEvent result; result.modifier = event.modifier; + result.scancode = event.keycode; if (result.shift()) result.key = m_keycode_to_key_shift[event.keycode]; else if (result.ralt()) diff --git a/userspace/libraries/LibInput/include/LibInput/KeyEvent.h b/userspace/libraries/LibInput/include/LibInput/KeyEvent.h index 654e3a62..6b2cf9a8 100644 --- a/userspace/libraries/LibInput/include/LibInput/KeyEvent.h +++ b/userspace/libraries/LibInput/include/LibInput/KeyEvent.h @@ -97,6 +97,7 @@ namespace LibInput bool released() const { return !pressed(); } uint16_t modifier; + uint8_t scancode; Key key; };