Kernel: KeyEvent is now well known keycode

Keycodes are easier to handle as you need only one keyboard layout
for keycodes. Otherwise you would need to implement keyboard layout
for every keyboard driver in every language.
This commit is contained in:
2024-01-10 01:29:37 +02:00
parent e4f48cbc73
commit 961ab9768a
12 changed files with 981 additions and 489 deletions

View File

@@ -127,12 +127,13 @@ namespace Kernel
if (event.released())
return;
const char* ansi_c_str = Input::key_event_to_utf8(event);
Input::Key key = Input::key_event_to_key(event);
const char* ansi_c_str = Input::key_to_utf8(key, event.modifier);
if (event.ctrl())
{
ansi_c_str = nullptr;
switch (event.key)
ansi_c_str = nullptr;
switch (key)
{
case Input::Key::A: ansi_c_str = "\x01"; break;
case Input::Key::B: ansi_c_str = "\x02"; break;
@@ -165,7 +166,7 @@ namespace Kernel
}
else
{
switch (event.key)
switch (key)
{
case Input::Key::Enter:
case Input::Key::NumpadEnter: