From 00c81634edd0fa651556b6a7a1283c435fd1fafc Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Sat, 28 Nov 2020 12:32:36 +0100 Subject: [PATCH] Context cleanup --- src/ui/context.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ui/context.rs b/src/ui/context.rs index 1e8693c..ddf5812 100644 --- a/src/ui/context.rs +++ b/src/ui/context.rs @@ -33,8 +33,8 @@ use crate::host::Localhost; // Includes use crossterm::execute; -use crossterm::event::EnableMouseCapture; -use crossterm::terminal::{EnterAlternateScreen}; +use crossterm::event::{EnableMouseCapture, DisableMouseCapture}; +use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen}; use std::io::{stdout, Stdout, Write}; use tui::backend::CrosstermBackend; use tui::Terminal; @@ -64,6 +64,18 @@ impl Context { } } +impl Drop for Context { + fn drop(&mut self) { + // Re-enable terminal stuff + let _ = execute!( + self.terminal.backend_mut(), + LeaveAlternateScreen, + DisableMouseCapture + ); + drop(self); + } +} + /* #[cfg(test)] mod tests {