Kernel: Fix USB keyboard Scroll lock

I was using 8 bit modifier and ScrollLock bit does not fit this. Also I
was not generating ScrollLock keypresses
This commit is contained in:
Bananymous 2025-02-11 02:16:38 +02:00
parent d0452a3510
commit 4dd6c85df2
2 changed files with 3 additions and 2 deletions

View File

@ -31,7 +31,7 @@ namespace Kernel
BAN::Array<bool, 0x100> m_keyboard_state { false };
BAN::Array<bool, 0x100> m_keyboard_state_temp { false };
uint8_t m_toggle_mask { 0 };
uint16_t m_toggle_mask { 0 };
BAN::Optional<uint8_t> m_repeat_scancode;
uint8_t m_repeat_modifier { 0 };

View File

@ -31,7 +31,7 @@ namespace Kernel
// FIXME: RawKeyEvent probably should only contain keycode.
// Modifier should be determined when converting to KeyEvent.
uint8_t modifier = 0;
uint16_t modifier = 0;
#define READ_MODIFIER(scancode, key_modifier) \
if (m_keyboard_state_temp[scancode]) \
@ -238,6 +238,7 @@ namespace Kernel
s_scancode_to_keycode[0x4D] = keycode_function(17);
s_scancode_to_keycode[0x4B] = keycode_function(18);
s_scancode_to_keycode[0x4E] = keycode_function(19);
s_scancode_to_keycode[0x47] = keycode_function(20);
s_scancode_to_keycode[0x53] = keycode_numpad(0, 0);
s_scancode_to_keycode[0x54] = keycode_numpad(0, 1);