From 7e29ee6daeb86fbd20a8b5eaae30b2e0f868147d Mon Sep 17 00:00:00 2001 From: Charlie Groves Date: Thu, 20 Oct 2022 21:35:02 -0400 Subject: Autosave all when the terminal loses focus (#3178) * Autosave all when the terminal loses focus * Correct comment on focus config Co-authored-by: Blaž Hrastnik * Need a block_try_flush_writes in all quit_all paths Co-authored-by: Blaž Hrastnik --- helix-term/src/application.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'helix-term/src/application.rs') diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index b4b4a675..8ee0802f 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -37,8 +37,8 @@ use anyhow::{Context, Error}; use crossterm::{ event::{ - DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, - Event as CrosstermEvent, + DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste, + EnableFocusChange, EnableMouseCapture, Event as CrosstermEvent, }, execute, terminal, tty::IsTty, @@ -102,6 +102,7 @@ fn restore_term() -> Result<(), Error> { execute!( stdout, DisableBracketedPaste, + DisableFocusChange, terminal::LeaveAlternateScreen )?; terminal::disable_raw_mode()?; @@ -925,7 +926,12 @@ impl Application { async fn claim_term(&mut self) -> Result<(), Error> { terminal::enable_raw_mode()?; let mut stdout = stdout(); - execute!(stdout, terminal::EnterAlternateScreen, EnableBracketedPaste)?; + execute!( + stdout, + terminal::EnterAlternateScreen, + EnableBracketedPaste, + EnableFocusChange + )?; execute!(stdout, terminal::Clear(terminal::ClearType::All))?; if self.config.load().editor.mouse { execute!(stdout, EnableMouseCapture)?; -- cgit v1.2.3-70-g09d2