diff --git a/Cargo.lock b/Cargo.lock index 5e84b6f..88d90f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -421,7 +421,7 @@ dependencies = [ [[package]] name = "client" -version = "0.3.0" +version = "0.3.3" dependencies = [ "async-trait", "common", @@ -458,7 +458,7 @@ dependencies = [ [[package]] name = "common" -version = "0.3.0" +version = "0.3.3" dependencies = [ "prost", "serde", @@ -2589,7 +2589,7 @@ dependencies = [ [[package]] name = "server" -version = "0.3.0" +version = "0.3.3" dependencies = [ "bcrypt", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 4a49281..b201912 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ resolver = "2" [workspace.package] # TODO: idk how to do the name, fix later # name = "Multieko2" -version = "0.3.0" +version = "0.3.3" edition = "2021" license = "GPL-3.0-or-later" authors = ["Filip Priečinský "] diff --git a/client/src/tui/terminal/core.rs b/client/src/tui/terminal/core.rs index 2043456..e0c1e6d 100644 --- a/client/src/tui/terminal/core.rs +++ b/client/src/tui/terminal/core.rs @@ -3,7 +3,7 @@ use crossterm::{ execute, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, - cursor::{SetCursorStyle, EnableBlinking, Show, MoveTo}, + cursor::{SetCursorStyle, EnableBlinking, Show, Hide, MoveTo}, }; use ratatui::{backend::CrosstermBackend, Terminal}; use std::io::{self, stdout, Write}; @@ -72,6 +72,14 @@ impl TerminalCore { )?; Ok(()) } + + pub fn hide_cursor(&mut self) -> Result<(), Box> { + execute!( + self.terminal.backend_mut(), + Hide + )?; + Ok(()) + } } impl Drop for TerminalCore { diff --git a/client/src/ui/handlers/ui.rs b/client/src/ui/handlers/ui.rs index ec687b6..432f400 100644 --- a/client/src/ui/handlers/ui.rs +++ b/client/src/ui/handlers/ui.rs @@ -75,14 +75,21 @@ pub async fn run_ui() -> Result<(), Box> { if !app_state.ui.focus_outside_canvas { terminal.set_cursor_style(SetCursorStyle::SteadyBlock)?; } else { - terminal - .set_cursor_style(SetCursorStyle::SteadyUnderScore)?; + terminal.set_cursor_style(SetCursorStyle::SteadyUnderScore)?; } - terminal.show_cursor()?; // Ensure visible + terminal.show_cursor()?; } - AppMode::General | AppMode::Command => { + AppMode::General => { + if app_state.ui.focus_outside_canvas { + terminal.set_cursor_style(SetCursorStyle::SteadyUnderScore)?; + terminal.show_cursor()?; + } else { + terminal.hide_cursor()?; + } + } + AppMode::Command => { terminal.set_cursor_style(SetCursorStyle::SteadyUnderScore)?; - terminal.show_cursor()?; // Ensure visible (though might not be positioned meaningfully) + terminal.show_cursor()?; } } // --- End Cursor Visibility Logic ---