diff options
author | Nbiba Bedis <bedisnbiba@gmail.com> | 2021-01-19 18:55:30 +0100 |
---|---|---|
committer | cyqsimon <28627918+cyqsimon@users.noreply.github.com> | 2023-08-25 17:34:37 +0800 |
commit | 0b7be9398e3b9b0fbe792c51e019e79914f9fd23 (patch) | |
tree | fa1a77201552cd9f46c75af74ff7ab05175c88b7 | |
parent | 66ba68954eece41cbc73d09372f060c9af851ccd (diff) |
use alternate mode
-rw-r--r-- | src/display/ui.rs | 1 | ||||
-rw-r--r-- | src/main.rs | 11 |
2 files changed, 10 insertions, 2 deletions
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 { |