From 0b7be9398e3b9b0fbe792c51e019e79914f9fd23 Mon Sep 17 00:00:00 2001 From: Nbiba Bedis Date: Tue, 19 Jan 2021 18:55:30 +0100 Subject: use alternate mode --- src/display/ui.rs | 1 - src/main.rs | 11 ++++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/display/ui.rs b/src/display/ui.rs index bc459cc..111dfe1 100644 --- a/src/display/ui.rs +++ b/src/display/ui.rs @@ -190,7 +190,6 @@ where self.ip_to_host.extend(ip_to_host); } pub fn end(&mut self) { - self.terminal.clear().unwrap(); self.terminal.show_cursor().unwrap(); } } diff --git a/src/main.rs b/src/main.rs index dfc8ce9..c64504d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,6 +24,7 @@ use ::ratatui::backend::Backend; use std::process; +use ::std::io::Write; use ::std::net::Ipv4Addr; use ::std::time::{Duration, Instant}; use ::ratatui::backend::CrosstermBackend; @@ -88,7 +89,9 @@ fn try_main() -> Result<(), failure::Error> { } else { match terminal::enable_raw_mode() { Ok(()) => { - let stdout = std::io::stdout(); + let mut stdout = std::io::stdout(); + // Ignore enteralternatescreen error + let _ = crossterm::execute!(&mut stdout, terminal::EnterAlternateScreen); let terminal_backend = CrosstermBackend::new(stdout); start(terminal_backend, os_input, opts); } @@ -239,6 +242,12 @@ where Ok(_) => {} Err(_) => println!("Error could not disable raw input"), } + let mut stdout = std::io::stdout(); + if let Err(_) = + crossterm::execute!(&mut stdout, terminal::LeaveAlternateScreen) + { + println!("Error could not leave alternte screen"); + }; break; } Event::Key(KeyEvent { -- cgit v1.2.3