linux: Fix IME on fcitx5 (#14508)

Conrad Irwin created

Release Notes:

- linux: Fix IME under fcitx5 (#14192)

Change summary

crates/gpui/src/platform/linux/x11/client.rs | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)

Detailed changes

crates/gpui/src/platform/linux/x11/client.rs 🔗

@@ -990,18 +990,16 @@ impl X11Client {
     fn xim_handle_commit(&self, window: xproto::Window, text: String) -> Option<()> {
         let window = self.get_window(window).unwrap();
         let mut state = self.0.borrow_mut();
-        if !state.composing {
-            if let Some(keystroke) = state.pre_ime_key_down.take() {
-                drop(state);
-                window.handle_input(PlatformInput::KeyDown(crate::KeyDownEvent {
-                    keystroke,
-                    is_held: false,
-                }));
-                return Some(());
-            }
-        }
+        let keystroke = state.pre_ime_key_down.take();
         state.composing = false;
         drop(state);
+        if let Some(mut keystroke) = keystroke {
+            keystroke.ime_key = Some(text.clone());
+            window.handle_input(PlatformInput::KeyDown(crate::KeyDownEvent {
+                keystroke,
+                is_held: false,
+            }));
+        }
 
         window.handle_ime_commit(text);
         Some(())