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:
@@ -31,7 +31,7 @@ namespace Kernel
|
|||||||
|
|
||||||
BAN::Array<bool, 0x100> m_keyboard_state { false };
|
BAN::Array<bool, 0x100> m_keyboard_state { false };
|
||||||
BAN::Array<bool, 0x100> m_keyboard_state_temp { 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;
|
BAN::Optional<uint8_t> m_repeat_scancode;
|
||||||
uint8_t m_repeat_modifier { 0 };
|
uint8_t m_repeat_modifier { 0 };
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace Kernel
|
|||||||
// FIXME: RawKeyEvent probably should only contain keycode.
|
// FIXME: RawKeyEvent probably should only contain keycode.
|
||||||
// Modifier should be determined when converting to KeyEvent.
|
// Modifier should be determined when converting to KeyEvent.
|
||||||
|
|
||||||
uint8_t modifier = 0;
|
uint16_t modifier = 0;
|
||||||
|
|
||||||
#define READ_MODIFIER(scancode, key_modifier) \
|
#define READ_MODIFIER(scancode, key_modifier) \
|
||||||
if (m_keyboard_state_temp[scancode]) \
|
if (m_keyboard_state_temp[scancode]) \
|
||||||
@@ -238,6 +238,7 @@ namespace Kernel
|
|||||||
s_scancode_to_keycode[0x4D] = keycode_function(17);
|
s_scancode_to_keycode[0x4D] = keycode_function(17);
|
||||||
s_scancode_to_keycode[0x4B] = keycode_function(18);
|
s_scancode_to_keycode[0x4B] = keycode_function(18);
|
||||||
s_scancode_to_keycode[0x4E] = keycode_function(19);
|
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[0x53] = keycode_numpad(0, 0);
|
||||||
s_scancode_to_keycode[0x54] = keycode_numpad(0, 1);
|
s_scancode_to_keycode[0x54] = keycode_numpad(0, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user