Restore terminal mode on panics.

pull/1/head
Blaž Hrastnik 4 years ago
parent 929fa5474d
commit 91343a6846

@ -376,6 +376,14 @@ impl Editor {
execute!(stdout, terminal::EnterAlternateScreen)?; execute!(stdout, terminal::EnterAlternateScreen)?;
// Exit the alternate screen and disable raw mode before panicking
let hook = std::panic::take_hook();
std::panic::set_hook(Box::new(move |info| {
execute!(std::io::stdout(), terminal::LeaveAlternateScreen);
disable_raw_mode();
hook(info);
}));
self.event_loop().await; self.event_loop().await;
// reset cursor shape // reset cursor shape

Loading…
Cancel
Save