cursor is disabled instead of hidden now

This commit is contained in:
filipriec
2025-04-07 17:23:42 +02:00
parent 7830ebdb3b
commit 0e1fc3f5fa
2 changed files with 15 additions and 23 deletions

View File

@@ -3,7 +3,7 @@
use crossterm::{ use crossterm::{
execute, execute,
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
cursor::{SetCursorStyle, EnableBlinking, Show, Hide, MoveTo}, cursor::{SetCursorStyle, EnableBlinking, Show, MoveTo},
}; };
use ratatui::{backend::CrosstermBackend, Terminal}; use ratatui::{backend::CrosstermBackend, Terminal};
use std::io::{self, stdout, Write}; use std::io::{self, stdout, Write};
@@ -72,14 +72,6 @@ impl TerminalCore {
)?; )?;
Ok(()) Ok(())
} }
pub fn hide_cursor(&mut self) -> Result<(), Box<dyn std::error::Error>> {
execute!(
self.terminal.backend_mut(),
Hide
)?;
Ok(())
}
} }
impl Drop for TerminalCore { impl Drop for TerminalCore {

View File

@@ -14,6 +14,7 @@ use crate::state::pages::auth::AuthState;
use crate::state::canvas_state::CanvasState; use crate::state::canvas_state::CanvasState;
use crate::modes::handlers::event::EventHandler; use crate::modes::handlers::event::EventHandler;
use crate::state::state::AppState; use crate::state::state::AppState;
use crossterm::cursor::SetCursorStyle;
pub async fn run_ui() -> Result<(), Box<dyn std::error::Error>> { pub async fn run_ui() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::load()?; let config = Config::load()?;
@@ -70,16 +71,15 @@ pub async fn run_ui() -> Result<(), Box<dyn std::error::Error>> {
} }
AppMode::ReadOnly => { AppMode::ReadOnly => {
if !app_state.ui.focus_outside_canvas { if !app_state.ui.focus_outside_canvas {
terminal.show_cursor()?; terminal.set_cursor_style(SetCursorStyle::SteadyBlock)?;
} else { } else {
terminal.hide_cursor()?; terminal.set_cursor_style(SetCursorStyle::SteadyUnderScore)?;
} }
terminal.show_cursor()?; // Ensure visible
} }
AppMode::General => { AppMode::General | AppMode::Command => {
terminal.hide_cursor()?; terminal.set_cursor_style(SetCursorStyle::SteadyUnderScore)?;
} terminal.show_cursor()?; // Ensure visible (though might not be positioned meaningfully)
AppMode::Command => {
terminal.hide_cursor()?;
} }
} }
// --- End Cursor Visibility Logic --- // --- End Cursor Visibility Logic ---