Browse Source

Kernel: Add scancode value to KeyEvent

Hüseyin ASLITÜRK 5 years ago
parent
commit
46b92fa173
2 changed files with 3 additions and 1 deletions
  1. 2 1
      Kernel/Devices/KeyboardDevice.cpp
  2. 1 0
      Kernel/KeyCode.h

+ 2 - 1
Kernel/Devices/KeyboardDevice.cpp

@@ -30,8 +30,8 @@
 #include <AK/Types.h>
 #include <Kernel/Arch/i386/CPU.h>
 #include <Kernel/Devices/KeyboardDevice.h>
-#include <Kernel/TTY/VirtualConsole.h>
 #include <Kernel/IO.h>
+#include <Kernel/TTY/VirtualConsole.h>
 
 //#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<u8>(character);
     event.flags = m_modifiers;
     if (pressed)

+ 1 - 0
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; }