diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-06 16:20:12 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-06 16:20:12 -0500 |
commit | 00aaaf923e5d133b8f19d43860d00df9774cea7a (patch) | |
tree | 10d153e3f3beb74a7d6b8ae31d5c94f2e5dfe10d | |
parent | d10dec63c7de4e756a099440f4dbf8445d31561e (diff) | |
download | teleterm-00aaaf923e5d133b8f19d43860d00df9774cea7a.tar.gz teleterm-00aaaf923e5d133b8f19d43860d00df9774cea7a.zip |
move to origin when clearing
crossterm no longer does this by default
-rw-r--r-- | src/cmd/watch.rs | 29 |
1 files 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<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> 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<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> } 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<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> - 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::*; |