diff --git a/Kernel/Devices/KeyboardDevice.cpp b/Kernel/Devices/KeyboardDevice.cpp index 7c15dc67498..9ac7f7d633c 100644 --- a/Kernel/Devices/KeyboardDevice.cpp +++ b/Kernel/Devices/KeyboardDevice.cpp @@ -30,8 +30,8 @@ #include #include #include -#include #include +#include //#define KEYBOARD_DEBUG @@ -475,6 +475,7 @@ void KeyboardDevice::key_state_changed(u8 raw, bool pressed) Event event; event.key = key; + event.scancode = m_has_e0_prefix ? 0xe000 + raw : raw; event.character = static_cast(character); event.flags = m_modifiers; if (pressed) diff --git a/Kernel/KeyCode.h b/Kernel/KeyCode.h index 6d56b9449f3..a80a776ac2b 100644 --- a/Kernel/KeyCode.h +++ b/Kernel/KeyCode.h @@ -160,6 +160,7 @@ enum KeyModifier { struct KeyEvent { KeyCode key { Key_Invalid }; + u32 scancode { 0 }; u8 character { 0 }; u8 flags { 0 }; bool alt() const { return flags & Mod_Alt; }