Close remote project windows when leaving a call

This commit is contained in:
Max Brunsfeld 2023-03-15 15:19:27 -07:00
parent 385dfe1661
commit b34477458e
3 changed files with 11 additions and 0 deletions

View File

@ -275,6 +275,7 @@ impl Room {
if let Some(project) = project.upgrade(cx) {
project.update(cx, |project, cx| {
project.disconnected_from_host(cx);
project.close(cx);
});
}
}

View File

@ -175,6 +175,7 @@ pub enum Event {
},
RemoteIdChanged(Option<u64>),
DisconnectedFromHost,
Closed,
CollaboratorUpdated {
old_peer_id: proto::PeerId,
new_peer_id: proto::PeerId,
@ -1172,6 +1173,10 @@ impl Project {
}
}
pub fn close(&mut self, cx: &mut ModelContext<Self>) {
cx.emit(Event::Closed);
}
pub fn is_read_only(&self) -> bool {
match &self.client_state {
Some(ProjectClientState::Remote {

View File

@ -598,6 +598,11 @@ impl Workspace {
cx.blur();
}
project::Event::Closed => {
let window_id = cx.window_id();
cx.remove_window(window_id);
}
_ => {}
}
cx.notify()