Kernel/HID: Expose character map index in the KeyEvent structure

This will be used later on by WindowServer so it will not use the
scancode, which will represent the actual character index in the
keyboard mapping when using scan code set 2.
This commit is contained in:
Liav A 2023-04-14 18:53:06 +03:00 committed by Andrew Kaster
parent 9a5bba2ba4
commit b89cc81674
2 changed files with 2 additions and 0 deletions

View file

@ -142,6 +142,7 @@ enum KeyModifier {
struct KeyEvent {
KeyCode key { Key_Invalid };
u8 map_entry_index { 0 };
u32 scancode { 0 };
u32 code_point { 0 };
u8 flags { 0 };

View file

@ -299,6 +299,7 @@ void KeyboardDevice::handle_scan_code_input_event(ScanCodeEvent event)
Event queued_event;
queued_event.key = key;
queued_event.map_entry_index = event.scan_code_value & 0xFF;
queued_event.scancode = event.e0_prefix ? 0xe000 + event.scan_code_value : event.scan_code_value;
queued_event.flags = m_modifiers;
queued_event.e0_prefix = event.e0_prefix;