Change summary
crates/project/src/project.rs | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
Detailed changes
@@ -3603,11 +3603,19 @@ impl Project {
})
}
- pub fn remove_worktree(&mut self, id: WorktreeId, cx: &mut ModelContext<Self>) {
+ pub fn remove_worktree(&mut self, id_to_remove: WorktreeId, cx: &mut ModelContext<Self>) {
self.worktrees.retain(|worktree| {
- worktree
- .upgrade(cx)
- .map_or(false, |w| w.read(cx).id() != id)
+ if let Some(worktree) = worktree.upgrade(cx) {
+ let id = worktree.read(cx).id();
+ if id == id_to_remove {
+ cx.emit(Event::WorktreeRemoved(id));
+ false
+ } else {
+ true
+ }
+ } else {
+ false
+ }
});
cx.notify();
}