From 00aaaf923e5d133b8f19d43860d00df9774cea7a Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 6 Nov 2019 16:20:12 -0500 Subject: move to origin when clearing crossterm no longer does this by default --- src/cmd/watch.rs | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs index 01340ff..d36a614 100644 --- a/src/cmd/watch.rs +++ b/src/cmd/watch.rs @@ -330,13 +330,7 @@ impl id, ); self.state.watching(client); - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear( - crossterm::terminal::ClearType::All - ) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; } } _ => {} @@ -422,11 +416,7 @@ impl } fn display_loading_screen(&self) -> Result<()> { - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear(crossterm::terminal::ClearType::All) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; println!("loading...\r"); if let Some(err) = self.list_client.last_error() { @@ -492,11 +482,7 @@ impl - watch_width - 3; - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear(crossterm::terminal::ClearType::All) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; println!("welcome to teleterm\r"); println!("available sessions:\r"); println!("\r"); @@ -727,6 +713,15 @@ fn truncate(s: &str, len: usize) -> String { } } +fn clear() -> Result<()> { + crossterm::execute!( + std::io::stdout(), + crossterm::cursor::MoveTo(0, 0), + crossterm::terminal::Clear(crossterm::terminal::ClearType::All) + ) + .context(crate::error::WriteTerminalCrossterm) +} + #[cfg(test)] mod test { use super::*; -- cgit v1.2.3-54-g00ecf