Focus terminal when creating one after activating the terminal panel (#22133)

Follow-up of https://github.com/zed-industries/zed/pull/22082

Release Notes:

- N/A
This commit is contained in:
Kirill Bulatov 2024-12-17 14:19:13 +02:00 committed by GitHub
parent 4878b9bbed
commit cc56ed7a88
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -724,8 +724,6 @@ impl TerminalPanel {
cx: &mut ViewContext<Self>, cx: &mut ViewContext<Self>,
) -> Task<Result<Model<Terminal>>> { ) -> Task<Result<Model<Terminal>>> {
let workspace = self.workspace.clone(); let workspace = self.workspace.clone();
self.pending_terminals_to_add += 1;
cx.spawn(|terminal_panel, mut cx| async move { cx.spawn(|terminal_panel, mut cx| async move {
if workspace.update(&mut cx, |workspace, cx| { if workspace.update(&mut cx, |workspace, cx| {
!is_enabled_in_workspace(workspace, cx) !is_enabled_in_workspace(workspace, cx)
@ -753,10 +751,6 @@ impl TerminalPanel {
cx, cx,
) )
})); }));
pane.update(cx, |pane, cx| {
let focus = pane.has_focus(cx);
pane.add_item(terminal_view, true, focus, None, cx);
});
match reveal_strategy { match reveal_strategy {
RevealStrategy::Always => { RevealStrategy::Always => {
@ -767,6 +761,13 @@ impl TerminalPanel {
} }
RevealStrategy::Never => {} RevealStrategy::Never => {}
} }
pane.update(cx, |pane, cx| {
let focus =
pane.has_focus(cx) || matches!(reveal_strategy, RevealStrategy::Always);
pane.add_item(terminal_view, true, focus, None, cx);
});
Ok(terminal) Ok(terminal)
})?; })?;
terminal_panel.update(&mut cx, |this, cx| { terminal_panel.update(&mut cx, |this, cx| {