linux: quit after the last window is closed (#7602)

Dzmitry Malyshau created

Release Notes:
- N/A

Change summary

crates/gpui/src/platform/linux/platform.rs | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Detailed changes

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) {