diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index 1776ee00b7e873d605f16ba3db001d45ff7efe10..b5ab1fcf93221384dec1e1df39c6e36d90a69fae 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -125,11 +125,8 @@ impl Platform for LinuxPlatform { // window "x" button clicked by user, we gracefully exit let window = self.state.lock().windows.remove(&ev.window()).unwrap(); window.destroy(); - if self.state.lock().windows.is_empty() { - if let Some(ref mut fun) = self.callbacks.lock().quit { - fun(); - } - } + let mut state = self.state.lock(); + state.quit_requested |= state.windows.is_empty(); } } } @@ -164,6 +161,10 @@ impl Platform for LinuxPlatform { runnable.run(); } } + + if let Some(ref mut fun) = self.callbacks.lock().quit { + fun(); + } } fn quit(&self) {