diff --git a/crates/gpui/src/platform/linux/wayland/client.rs b/crates/gpui/src/platform/linux/wayland/client.rs index 0bbd716e06..8ac18b78c3 100644 --- a/crates/gpui/src/platform/linux/wayland/client.rs +++ b/crates/gpui/src/platform/linux/wayland/client.rs @@ -558,11 +558,12 @@ impl Dispatch for WaylandClientState { return TimeoutAction::Drop; } - state_ - .keyboard_focused_window - .as_ref() - .unwrap() - .handle_input(input.clone()); + let focused_window = + state_.keyboard_focused_window.as_ref().unwrap().clone(); + + drop(state_); + + focused_window.handle_input(input.clone()); TimeoutAction::ToDuration(Duration::from_secs(1) / rate) })