From e1a84a8e340f09b9479ca2df333ba135a45d2048 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Fri, 15 May 2026 21:17:55 +0300 Subject: fix: force redraw on terminal focus gain --- src/client/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/client') diff --git a/src/client/mod.rs b/src/client/mod.rs index 1758ffdc..5d52f8b3 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -56,6 +56,12 @@ struct ClientState { kitty_graphics_enabled: bool, } +impl ClientState { + fn request_full_redraw(&mut self) { + self.blit_encoder = blit::BlitEncoder::new(); + } +} + // --------------------------------------------------------------------------- // Error types // --------------------------------------------------------------------------- @@ -497,6 +503,10 @@ async fn run_client_loop( match event { ClientLoopEvent::StdinInput(data) => { + let events = crate::raw_input::parse_raw_input_bytes_sync(&data); + if crate::raw_input::events_require_host_surface_redraw(&events) { + state.request_full_redraw(); + } let msg = ClientMessage::Input { data }; if let Err(e) = write_to_server(&mut write_stream, &msg) { return Err(ClientError::ConnectionLost(e)); -- cgit v1.2.3