1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:08:13 +00:00

CharacterMap: Added a new Shift+AltGr map.

If this map isn't found in a keymap the Alt+Gr map gets used.
This commit is contained in:
Davide Carella 2021-01-05 09:45:17 +01:00 committed by Andreas Kling
parent ca9e0a70f5
commit f146ff87f1
3 changed files with 24 additions and 4 deletions

View file

@ -50,7 +50,7 @@ CharacterMap::CharacterMap(const String& file_name)
int CharacterMap::set_system_map()
{
Syscall::SC_setkeymap_params params { m_character_map_data.map, m_character_map_data.shift_map, m_character_map_data.alt_map, m_character_map_data.altgr_map, { m_character_map_name.characters(), m_character_map_name.length() } };
Syscall::SC_setkeymap_params params { m_character_map_data.map, m_character_map_data.shift_map, m_character_map_data.alt_map, m_character_map_data.altgr_map, m_character_map_data.shift_altgr_map, { m_character_map_name.characters(), m_character_map_name.length() } };
return syscall(SC_setkeymap, &params);
}
@ -63,10 +63,12 @@ u32 CharacterMap::get_char(KeyEvent event)
auto caps_lock_on = event.caps_lock_on;
u32 code_point;
if (modifiers & Mod_Shift)
code_point = m_character_map_data.shift_map[index];
else if (modifiers & Mod_Alt)
if (modifiers & Mod_Alt)
code_point = m_character_map_data.alt_map[index];
else if ((modifiers & Mod_Shift) && (modifiers & Mod_AltGr))
code_point = m_character_map_data.shift_altgr_map[index];
else if (modifiers & Mod_Shift)
code_point = m_character_map_data.shift_map[index];
else if (modifiers & Mod_AltGr)
code_point = m_character_map_data.altgr_map[index];
else