Change summary
crates/collab_ui2/src/notifications/incoming_call_notification.rs | 4
crates/gpui2/src/app.rs | 6
2 files changed, 6 insertions(+), 4 deletions(-)
Detailed changes
@@ -18,9 +18,9 @@ pub fn init(app_state: &Arc<AppState>, 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();
}
@@ -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"))?