Skip to content

Commit

Permalink
Enable DISAMBIGUATE_ESCAPE_CODES if terminal supports it
Browse files Browse the repository at this point in the history
  • Loading branch information
the-mikedavis committed Jan 11, 2023
1 parent 5f11582 commit 5f2fd1b
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion helix-term/src/application.rs
Expand Up @@ -40,7 +40,8 @@ use anyhow::{Context, Error};
use crossterm::{
event::{
DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste,
EnableFocusChange, EnableMouseCapture, Event as CrosstermEvent,
EnableFocusChange, EnableMouseCapture, Event as CrosstermEvent, KeyboardEnhancementFlags,
PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags,
},
execute, terminal,
tty::IsTty,
Expand Down Expand Up @@ -111,6 +112,9 @@ fn restore_term() -> Result<(), Error> {
let mut stdout = stdout();
// reset cursor shape
write!(stdout, "\x1B[0 q")?;
if matches!(terminal::supports_keyboard_enhancement(), Ok(true)) {
execute!(stdout, PopKeyboardEnhancementFlags)?;
}
// Ignore errors on disabling, this might trigger on windows if we call
// disable without calling enable previously
let _ = execute!(stdout, DisableMouseCapture);
Expand Down Expand Up @@ -1051,6 +1055,14 @@ impl Application {
if self.config.load().editor.mouse {
execute!(stdout, EnableMouseCapture)?;
}
if matches!(terminal::supports_keyboard_enhancement(), Ok(true)) {
log::debug!("Enabling DISAMBIGUATE_ESCAPE_CODES within crossterm");
execute!(
stdout,
PushKeyboardEnhancementFlags(KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES)
)?;
}

Ok(())
}

Expand Down

0 comments on commit 5f2fd1b

Please sign in to comment.