From ff97070a03976c70333478e4a2571492f27e62b3 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 6 Sep 2024 23:35:56 +0300 Subject: [PATCH] hide cursor --- crates/tek_core/src/engine/layout.rs | 2 +- crates/tek_core/src/tui.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/tek_core/src/engine/layout.rs b/crates/tek_core/src/engine/layout.rs index 8239e667..5a71693f 100644 --- a/crates/tek_core/src/engine/layout.rs +++ b/crates/tek_core/src/engine/layout.rs @@ -1,6 +1,6 @@ use crate::*; -/// Compute drawing area before rendering +/// Trait for structs that compute drawing area before rendering pub trait Layout: Render { fn layout (&self, area: impl Rectangle) -> Perhaps>; } diff --git a/crates/tek_core/src/tui.rs b/crates/tek_core/src/tui.rs index b6751946..b587f028 100644 --- a/crates/tek_core/src/tui.rs +++ b/crates/tek_core/src/tui.rs @@ -10,12 +10,9 @@ use crossterm::terminal::{ EnterAlternateScreen, LeaveAlternateScreen, enable_raw_mode, disable_raw_mode }; -submod! { - tui_border - tui_buffer - tui_colors - tui_layout -} + +submod! { tui_border tui_buffer tui_colors tui_layout } + pub struct Tui { exited: Arc, buffer: usize, @@ -24,6 +21,7 @@ pub struct Tui { event: RwLock>, area: Rect, } + impl Engine for Tui { type Unit = u16; type Area = Rect; @@ -42,10 +40,12 @@ impl Engine for Tui { better_panic_handler(info); })); stdout().execute(EnterAlternateScreen)?; + self.backend.hide_cursor()?; enable_raw_mode().map_err(Into::into) } fn teardown (&mut self) -> Usually<()> { stdout().execute(LeaveAlternateScreen)?; + self.backend.show_cursor()?; disable_raw_mode().map_err(Into::into) } // FIXME