mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 21:27:34 +00:00
LibVT: Mask out keypad keys while in keypad application mode
This commit is contained in:
parent
d6c8b4d279
commit
dea61d95db
2 changed files with 8 additions and 2 deletions
|
@ -943,12 +943,12 @@ void Terminal::DECDC(Parameters params)
|
||||||
|
|
||||||
void Terminal::DECKPNM()
|
void Terminal::DECKPNM()
|
||||||
{
|
{
|
||||||
dbgln("FIXME: implement setting the keypad to numeric mode");
|
m_in_application_keypad_mode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Terminal::DECKPAM()
|
void Terminal::DECKPAM()
|
||||||
{
|
{
|
||||||
dbgln("FIXME: implement setting the keypad to application mode");
|
m_in_application_keypad_mode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Terminal::DSR(Parameters params)
|
void Terminal::DSR(Parameters params)
|
||||||
|
@ -1327,6 +1327,7 @@ void Terminal::handle_key_press(KeyCode key, u32 code_point, u8 flags)
|
||||||
bool ctrl = flags & Mod_Ctrl;
|
bool ctrl = flags & Mod_Ctrl;
|
||||||
bool alt = flags & Mod_Alt;
|
bool alt = flags & Mod_Alt;
|
||||||
bool shift = flags & Mod_Shift;
|
bool shift = flags & Mod_Shift;
|
||||||
|
bool keypad = flags & Mod_Keypad;
|
||||||
unsigned modifier_mask = int(shift) + (int(alt) << 1) + (int(ctrl) << 2);
|
unsigned modifier_mask = int(shift) + (int(alt) << 1) + (int(ctrl) << 2);
|
||||||
|
|
||||||
auto emit_final_with_modifier = [this, modifier_mask](char final) {
|
auto emit_final_with_modifier = [this, modifier_mask](char final) {
|
||||||
|
@ -1347,6 +1348,10 @@ void Terminal::handle_key_press(KeyCode key, u32 code_point, u8 flags)
|
||||||
emit_string(builder.string_view());
|
emit_string(builder.string_view());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (keypad && m_in_application_keypad_mode) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case KeyCode::Key_Up:
|
case KeyCode::Key_Up:
|
||||||
emit_final_with_modifier('A');
|
emit_final_with_modifier('A');
|
||||||
|
|
|
@ -424,6 +424,7 @@ protected:
|
||||||
|
|
||||||
bool m_swallow_current { false };
|
bool m_swallow_current { false };
|
||||||
bool m_stomp { false };
|
bool m_stomp { false };
|
||||||
|
bool m_in_application_keypad_mode { false };
|
||||||
|
|
||||||
CursorShape m_cursor_shape { VT::CursorShape::Block };
|
CursorShape m_cursor_shape { VT::CursorShape::Block };
|
||||||
CursorShape m_saved_cursor_shape { VT::CursorShape::Block };
|
CursorShape m_saved_cursor_shape { VT::CursorShape::Block };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue