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;
|
.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.
|
// Changes to client A's editor are reflected on client B.
|
||||||
editor_a1.update(cx_a, |editor, cx| {
|
editor_a1.update(cx_a, |editor, cx| {
|
||||||
editor.select_ranges([1..1, 2..2], None, 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);
|
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;
|
let mut navigated = prev_active_index != pane.active_item_index;
|
||||||
if let Some(data) = entry.data {
|
if let Some(data) = entry.data {
|
||||||
@@ -217,6 +213,11 @@ impl Pane {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if navigated {
|
if navigated {
|
||||||
|
pane.focus_active_item(cx);
|
||||||
|
pane.update_toolbar(cx);
|
||||||
|
pane.activate(cx);
|
||||||
|
cx.emit(Event::ActivateItem { local: true });
|
||||||
|
cx.notify();
|
||||||
break None;
|
break None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user