From a293206224c6c3bacf2c0a8bdd2551e273003346 Mon Sep 17 00:00:00 2001 From: Ygor Souza Date: Mon, 30 Sep 2024 17:28:05 +0200 Subject: [PATCH] Ignore Ime::Enabled event on Linux It means different things on X11 and Wayland, and causes us to assume IME is active when it isn't, causing the backspace and arrow keys to be disabled. --- crates/egui-winit/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/egui-winit/src/lib.rs b/crates/egui-winit/src/lib.rs index 7110ef3fe21..85cd5047f9f 100644 --- a/crates/egui-winit/src/lib.rs +++ b/crates/egui-winit/src/lib.rs @@ -344,7 +344,13 @@ impl State { // between Commits. match ime { winit::event::Ime::Enabled => { - self.ime_event_enable(); + if cfg!(target_os = "linux") { + // This event means different things in X11 and Wayland, but we can just + // ignore it and enable IME on the preedit event. + // See + } else { + self.ime_event_enable(); + } } winit::event::Ime::Preedit(text, Some(_cursor)) => { self.ime_event_enable();