diff --git a/kernel/include/kernel/USB/HID/Keyboard.h b/kernel/include/kernel/USB/HID/Keyboard.h index 7a738e36..df4f3286 100644 --- a/kernel/include/kernel/USB/HID/Keyboard.h +++ b/kernel/include/kernel/USB/HID/Keyboard.h @@ -31,7 +31,7 @@ namespace Kernel BAN::Array m_keyboard_state { false }; BAN::Array m_keyboard_state_temp { false }; - uint8_t m_toggle_mask { 0 }; + uint16_t m_toggle_mask { 0 }; BAN::Optional m_repeat_scancode; uint8_t m_repeat_modifier { 0 }; diff --git a/kernel/kernel/USB/HID/Keyboard.cpp b/kernel/kernel/USB/HID/Keyboard.cpp index d5dd476e..404b3282 100644 --- a/kernel/kernel/USB/HID/Keyboard.cpp +++ b/kernel/kernel/USB/HID/Keyboard.cpp @@ -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);