close notification handler proper on accept/decline

Co-authored-by: Conrad <conrad@zed.dev>
This commit is contained in:
Piotr Osiewicz 2023-11-27 18:57:25 +01:00
parent 8ca9f4e12a
commit b2b5df4428
2 changed files with 6 additions and 4 deletions

View file

@ -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();
}

View file

@ -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"))?