From 0851c9f6648bff40c0b4d3ab7df336433b11fc05 Mon Sep 17 00:00:00 2001 From: anshul-garg27 <13553550+anshul-garg27@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:08:31 +0530 Subject: [PATCH] Enable IME on Linux/Wayland MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #9383. `set_ime_allowed(true)` was only called inside a `#[cfg(windows)]` block, so on Linux/Wayland the winit backend never sent `zwp_text_input_v3.enable()` to the compositor and IME stayed inactive — non-Latin input (CJK, etc.) was effectively unusable. Add a parallel `#[cfg(target_os = "linux")]` call right after the Windows one. macOS continues to use the native NSTextInputClient route and does not need this. --- crates/warpui/src/windowing/winit/window.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/warpui/src/windowing/winit/window.rs b/crates/warpui/src/windowing/winit/window.rs index 415a28aab..d1fdba6fa 100644 --- a/crates/warpui/src/windowing/winit/window.rs +++ b/crates/warpui/src/windowing/winit/window.rs @@ -1422,6 +1422,13 @@ fn create_window( } } + #[cfg(target_os = "linux")] + if let Ok(window) = created_window.as_ref() { + // On Linux/Wayland, winit only sends `zwp_text_input_v3.enable()` when IME is allowed, + // so without this call IME stays inactive and non-Latin input (CJK, etc.) is unusable. + window.set_ime_allowed(true); + } + created_window }