From b2b5df442889b9820d447e48d29a8fe5121afd4c Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 27 Nov 2023 18:57:25 +0100 Subject: [PATCH] close notification handler proper on accept/decline Co-authored-by: Conrad --- .../src/notifications/incoming_call_notification.rs | 4 ++-- crates/gpui2/src/app.rs | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/collab_ui2/src/notifications/incoming_call_notification.rs b/crates/collab_ui2/src/notifications/incoming_call_notification.rs index b139afcc2f4ed91857b412bd29a123f3381fb536..24db39683de2daedf409dd911b89f1279e3b9fb9 100644 --- a/crates/collab_ui2/src/notifications/incoming_call_notification.rs +++ b/crates/collab_ui2/src/notifications/incoming_call_notification.rs @@ -18,9 +18,9 @@ pub fn init(app_state: &Arc, cx: &mut AppContext) { while let Some(incoming_call) = incoming_call.next().await { for window in notification_windows.drain(..) { window - .update(&mut cx, |_, _| { + .update(&mut cx, |_, cx| { // todo!() - //cx.remove_window(); + cx.remove_window(); }) .log_err(); } diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 617c0b5600742a07029863468b785376c1d53224..e8f2a60a6a6efd611eac67a649cf1d0da6a8c789 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -580,7 +580,7 @@ impl AppContext { .windows .iter() .filter_map(|(_, window)| { - let window = window.as_ref().unwrap(); + let window = window.as_ref()?; if window.dirty { Some(window.handle.clone()) } else { @@ -1049,7 +1049,9 @@ impl Context for AppContext { let root_view = window.root_view.clone().unwrap(); let result = update(root_view, &mut WindowContext::new(cx, &mut window)); - if !window.removed { + if window.removed { + cx.windows.remove(handle.id); + } else { cx.windows .get_mut(handle.id) .ok_or_else(|| anyhow!("window not found"))?