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, cx,
|this, cx| { |this, cx| {
if let Some(workspace) = this.workspace.upgrade(cx) { if let Some(workspace) = this.workspace.upgrade(cx) {
cx.window_context().defer(move |cx| {
workspace.update(cx, |workspace, cx| { workspace.update(cx, |workspace, cx| {
Dock::hide_dock(workspace, &Default::default(), cx) Dock::hide_dock(workspace, &Default::default(), cx)
}) })
});
} }
}, },
None, None,

View file

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