From baa89ead29cb54a45c2e490ef571ebf2dd595618 Mon Sep 17 00:00:00 2001 From: leozeli Date: Wed, 29 Apr 2026 16:07:08 +0800 Subject: [PATCH] Fix IME not enabled on Linux/Wayland (set_ime_allowed missing from Linux path) winit's set_ime_allowed(true) was only called inside a #[cfg(windows)] block, so on Linux/Wayland the zwp_text_input_v3.enable() signal was never sent to the compositor. Without it, input methods (fcitx5, ibus) never receive a keyboard grab for the Warp window, making CJK and IME-based input impossible. Add an equivalent #[cfg(target_os = "linux")] call after window creation to enable IME on Linux. Verified with Hyprland 0.54.3 + fcitx5 + Rime. Fixes #9383 Related: #6877 --- crates/warpui/src/windowing/winit/window.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/warpui/src/windowing/winit/window.rs b/crates/warpui/src/windowing/winit/window.rs index 415a28aa..1ec93436 100644 --- a/crates/warpui/src/windowing/winit/window.rs +++ b/crates/warpui/src/windowing/winit/window.rs @@ -1422,6 +1422,11 @@ fn create_window( } } + #[cfg(target_os = "linux")] + if let Ok(window) = created_window.as_ref() { + window.set_ime_allowed(true); + } + created_window }