Emit the WorktreeUpdatedEntries event for all projects, not just local (#8963)

Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/8846 (which hasn't yet been
released), in which the project panel didn't update correctly for remote
projects when collaborating.

Release Notes:

- N/A
This commit is contained in:
Max Brunsfeld 2024-03-06 11:58:18 -08:00 committed by GitHub
parent 06035dadea
commit 6bbd09e28e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6745,24 +6745,30 @@ impl Project {
fn add_worktree(&mut self, worktree: &Model<Worktree>, cx: &mut ModelContext<Self>) { fn add_worktree(&mut self, worktree: &Model<Worktree>, cx: &mut ModelContext<Self>) {
cx.observe(worktree, |_, _, cx| cx.notify()).detach(); cx.observe(worktree, |_, _, cx| cx.notify()).detach();
if worktree.read(cx).is_local() { cx.subscribe(worktree, |this, worktree, event, cx| {
cx.subscribe(worktree, |this, worktree, event, cx| match event { let is_local = worktree.read(cx).is_local();
match event {
worktree::Event::UpdatedEntries(changes) => { worktree::Event::UpdatedEntries(changes) => {
if is_local {
this.update_local_worktree_buffers(&worktree, changes, cx); this.update_local_worktree_buffers(&worktree, changes, cx);
this.update_local_worktree_language_servers(&worktree, changes, cx); this.update_local_worktree_language_servers(&worktree, changes, cx);
this.update_local_worktree_settings(&worktree, changes, cx); this.update_local_worktree_settings(&worktree, changes, cx);
this.update_prettier_settings(&worktree, changes, cx); this.update_prettier_settings(&worktree, changes, cx);
}
cx.emit(Event::WorktreeUpdatedEntries( cx.emit(Event::WorktreeUpdatedEntries(
worktree.read(cx).id(), worktree.read(cx).id(),
changes.clone(), changes.clone(),
)); ));
} }
worktree::Event::UpdatedGitRepositories(updated_repos) => { worktree::Event::UpdatedGitRepositories(updated_repos) => {
if is_local {
this.update_local_worktree_buffers_git_repos(worktree, updated_repos, cx) this.update_local_worktree_buffers_git_repos(worktree, updated_repos, cx)
} }
}
}
}) })
.detach(); .detach();
}
let push_strong_handle = { let push_strong_handle = {
let worktree = worktree.read(cx); let worktree = worktree.read(cx);