Change summary
crates/workspace/src/workspace.rs | 6 +++++-
crates/zed/src/zed.rs | 7 +++++++
2 files changed, 12 insertions(+), 1 deletion(-)
Detailed changes
@@ -907,7 +907,11 @@ impl Workspace {
}
}
- fn close(&mut self, _: &CloseWindow, cx: &mut ViewContext<Self>) -> Option<Task<Result<()>>> {
+ pub fn close(
+ &mut self,
+ _: &CloseWindow,
+ cx: &mut ViewContext<Self>,
+ ) -> Option<Task<Result<()>>> {
let prepare = self.prepare_to_close(cx);
Some(cx.spawn(|this, mut cx| async move {
if prepare.await? {
@@ -222,6 +222,13 @@ pub fn initialize_workspace(
});
auto_update::notify_of_any_new_update(cx.weak_handle(), cx);
+
+ cx.on_window_should_close(|workspace, cx| {
+ if let Some(task) = workspace.close(&Default::default(), cx) {
+ task.detach_and_log_err(cx);
+ }
+ false
+ });
}
pub fn build_window_options() -> WindowOptions<'static> {