Defer hiding the dock and going back/forward when Pane is on the stack

This commit is contained in:
Antonio Scandurra 2023-05-01 17:06:05 +02:00
parent e3b2407ebf
commit 780ece551e
2 changed files with 18 additions and 10 deletions

View File

@ -1645,9 +1645,11 @@ impl Pane {
cx,
|this, cx| {
if let Some(workspace) = this.workspace.upgrade(cx) {
workspace.update(cx, |workspace, cx| {
Dock::hide_dock(workspace, &Default::default(), cx)
})
cx.window_context().defer(move |cx| {
workspace.update(cx, |workspace, cx| {
Dock::hide_dock(workspace, &Default::default(), cx)
})
});
}
},
None,

View File

@ -138,10 +138,13 @@ impl View for Toolbar {
.upgrade(cx)
.and_then(|pane| pane.read(cx).workspace().upgrade(cx))
{
workspace.update(cx, |workspace, cx| {
Pane::go_back(workspace, Some(pane.clone()), cx)
.detach_and_log_err(cx);
});
let pane = pane.clone();
cx.window_context().defer(move |cx| {
workspace.update(cx, |workspace, cx| {
Pane::go_back(workspace, Some(pane.clone()), cx)
.detach_and_log_err(cx);
});
})
}
}
},
@ -163,9 +166,12 @@ impl View for Toolbar {
.upgrade(cx)
.and_then(|pane| pane.read(cx).workspace().upgrade(cx))
{
workspace.update(cx, |workspace, cx| {
Pane::go_forward(workspace, Some(pane.clone()), cx)
.detach_and_log_err(cx);
let pane = pane.clone();
cx.window_context().defer(move |cx| {
workspace.update(cx, |workspace, cx| {
Pane::go_forward(workspace, Some(pane.clone()), cx)
.detach_and_log_err(cx);
});
});
}
}