LibKeyboard: get_char now handles e0 prefix for control keys

Control keys which have numpad counter-parts have the same scancode
except for an e0 prefix. We now return a 0 code_point for those keys.
This commit is contained in:
Gal Horowitz 2020-12-29 17:26:04 +02:00 committed by Andreas Kling
parent c2332780ee
commit fea498e9ac

View file

@ -82,6 +82,10 @@ u32 CharacterMap::get_char(KeyEvent event)
if (event.e0_prefix && event.key == Key_Slash) {
// If Key_Slash (scancode = 0x35) mapped to other form "/", we fix num pad key of "/" with this case.
code_point = '/';
} else if (event.e0_prefix) {
// Except for `keypad-/`, all e0 scan codes are not actually characters. i.e., `keypad-0` and
// `Insert` have the same scancode except for the prefix, but insert should not have a code_point.
code_point = 0;
}
return code_point;