diff --git a/crates/gpui/src/platform/linux/wayland/window.rs b/crates/gpui/src/platform/linux/wayland/window.rs index b8417593d61376d73cbc7ddf3c82da48948e6bd8..41bbd09e7e806312c4028af13f9072e39247763c 100644 --- a/crates/gpui/src/platform/linux/wayland/window.rs +++ b/crates/gpui/src/platform/linux/wayland/window.rs @@ -481,13 +481,12 @@ impl WaylandWindowStatePtr { } } if let PlatformInput::KeyDown(event) = input { - let mut state = self.state.borrow_mut(); - if let Some(mut input_handler) = state.input_handler.take() { - if let Some(ime_key) = &event.keystroke.ime_key { + if let Some(ime_key) = &event.keystroke.ime_key { + let mut state = self.state.borrow_mut(); + if let Some(mut input_handler) = state.input_handler.take() { drop(state); input_handler.replace_text_in_range(None, ime_key); - let mut state = self.state.borrow_mut(); - state.input_handler = Some(input_handler); + self.state.borrow_mut().input_handler = Some(input_handler); } } }