Change summary
crates/call/src/room.rs | 1 +
crates/project/src/project.rs | 5 +++++
crates/workspace/src/workspace.rs | 5 +++++
3 files changed, 11 insertions(+)
Detailed changes
@@ -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);
});
}
}
@@ -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 {
@@ -598,6 +598,11 @@ impl Workspace {
cx.blur();
}
+ project::Event::Closed => {
+ let window_id = cx.window_id();
+ cx.remove_window(window_id);
+ }
+
_ => {}
}
cx.notify()