summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/display/ui.rs1
-rw-r--r--src/main.rs11
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 {