Merge pull request #736 from zed-industries/update-followers-when-navigating

Update followers when navigating back and forth
This commit is contained in:
Antonio Scandurra
2022-04-05 10:57:57 +02:00
committed by GitHub
2 changed files with 28 additions and 4 deletions

View File

@@ -4561,6 +4561,29 @@ mod tests {
})
.await;
// When client A navigates back and forth, client B does so as well.
workspace_a
.update(cx_a, |workspace, cx| {
workspace::Pane::go_back(workspace, None, cx)
})
.await;
workspace_b
.condition(cx_b, |workspace, cx| {
workspace.active_item(cx).unwrap().id() == editor_b2.id()
})
.await;
workspace_a
.update(cx_a, |workspace, cx| {
workspace::Pane::go_forward(workspace, None, cx)
})
.await;
workspace_b
.condition(cx_b, |workspace, cx| {
workspace.active_item(cx).unwrap().id() == editor_b1.id()
})
.await;
// Changes to client A's editor are reflected on client B.
editor_a1.update(cx_a, |editor, cx| {
editor.select_ranges([1..1, 2..2], None, cx);

View File

@@ -206,10 +206,6 @@ impl Pane {
}
let prev_active_index = mem::replace(&mut pane.active_item_index, index);
pane.focus_active_item(cx);
pane.update_toolbar(cx);
cx.emit(Event::ActivateItem { local: true });
cx.notify();
let mut navigated = prev_active_index != pane.active_item_index;
if let Some(data) = entry.data {
@@ -217,6 +213,11 @@ impl Pane {
}
if navigated {
pane.focus_active_item(cx);
pane.update_toolbar(cx);
pane.activate(cx);
cx.emit(Event::ActivateItem { local: true });
cx.notify();
break None;
}
}