Merge pull request #736 from zed-industries/update-followers-when-navigating
Update followers when navigating back and forth
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user