From 8e5a269ff0a4331b6238805b30cff8e499f3caaa Mon Sep 17 00:00:00 2001 From: filipriec Date: Fri, 18 Apr 2025 22:09:07 +0200 Subject: [PATCH] finally working amazingly well --- client/src/ui/handlers/ui.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/src/ui/handlers/ui.rs b/client/src/ui/handlers/ui.rs index e0f6606..5b32b47 100644 --- a/client/src/ui/handlers/ui.rs +++ b/client/src/ui/handlers/ui.rs @@ -146,11 +146,16 @@ pub async fn run_ui() -> Result<()> { let total_count = app_state.total_count; let mut current_position = app_state.current_position; let position_before_event = current_position; + // --- Determine if redraw is needed based on active login --- + // Always redraw if the loading dialog is currently showing. + if app_state.ui.dialog.is_loading { + needs_redraw = true; + } // --- 1. Handle Terminal Events --- let mut event_outcome_result = Ok(EventOutcome::Ok(String::new())); // Poll for events *after* drawing and checking pending actions - if crossterm_event::poll(std::time::Duration::from_millis(20))? { + if crossterm_event::poll(std::time::Duration::from_millis(1))? { let event = event_reader.read_event().context("Failed to read terminal event")?; event_outcome_result = event_handler .handle_event( @@ -361,7 +366,6 @@ pub async fn run_ui() -> Result<()> { 0 }; register_state.current_cursor_pos = event_handler.ideal_cursor_column.min(max_cursor_pos); - position_logic_needs_redraw = true; } } else if app_state.ui.show_login { if !event_handler.is_edit_mode { @@ -372,7 +376,6 @@ pub async fn run_ui() -> Result<()> { 0 }; login_state.current_cursor_pos = event_handler.ideal_cursor_column.min(max_cursor_pos); - position_logic_needs_redraw = true; } } if position_logic_needs_redraw {