NCursesUI: Handle CSI in 8-bit mode as well
This commit is contained in:
parent
e90e77e5fc
commit
1670a7514a
|
@ -656,12 +656,7 @@ Optional<Key> NCursesUI::get_next_key()
|
|||
return {};
|
||||
};
|
||||
|
||||
if (c == 27)
|
||||
{
|
||||
wtimeout(m_window, 0);
|
||||
const int new_c = wgetch(m_window);
|
||||
if (new_c == '[') // potential CSI
|
||||
{
|
||||
auto parse_csi = [this]() -> Optional<Key> {
|
||||
const Codepoint c1 = wgetch(m_window);
|
||||
switch (c1)
|
||||
{
|
||||
|
@ -712,6 +707,17 @@ Optional<Key> NCursesUI::get_next_key()
|
|||
ungetch(c1);
|
||||
break;
|
||||
}
|
||||
return {};
|
||||
};
|
||||
|
||||
if (c == 27)
|
||||
{
|
||||
wtimeout(m_window, 0);
|
||||
const int new_c = wgetch(m_window);
|
||||
if (new_c == '[') // potential CSI
|
||||
{
|
||||
if (auto key = parse_csi())
|
||||
return key;
|
||||
}
|
||||
wtimeout(m_window, -1);
|
||||
|
||||
|
@ -720,6 +726,9 @@ Optional<Key> NCursesUI::get_next_key()
|
|||
else
|
||||
return {Key::Escape};
|
||||
}
|
||||
else if (c == 0x9b)
|
||||
return parse_csi();
|
||||
|
||||
return parse_key(c);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user