From 2be106e3e61c00f240181dc3ec92776097c14c23 Mon Sep 17 00:00:00 2001 From: stjet <49297268+stjet@users.noreply.github.com> Date: Sun, 9 Feb 2025 18:31:30 +0000 Subject: [PATCH] osk not redrawing fix??? --- src/messages.rs | 10 ++++++++++ src/window_manager.rs | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/messages.rs b/src/messages.rs index 3dcbb38..5658bf6 100644 --- a/src/messages.rs +++ b/src/messages.rs @@ -42,6 +42,16 @@ pub enum WindowMessageResponse { DoNothing, } +impl WindowMessageResponse { + pub fn is_key_char_request(&self) -> bool { + if let WindowMessageResponse::Request(WindowManagerRequest::DoKeyChar(_)) = self { + true + } else { + false + } + } +} + #[derive(Serialize, Deserialize)] pub struct KeyPress { pub key: char, diff --git a/src/window_manager.rs b/src/window_manager.rs index 6026cbc..ea77204 100644 --- a/src/window_manager.rs +++ b/src/window_manager.rs @@ -648,11 +648,14 @@ impl WindowManager { } }; if response != WindowMessageResponse::DoNothing { + let is_key_char_request = response.is_key_char_request(); match response { WindowMessageResponse::Request(request) => self.handle_request(request), _ => {}, }; - self.draw(redraw_ids, use_saved_buffer); + if !is_key_char_request { + self.draw(redraw_ids, use_saved_buffer); + } } }