diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index a3cff1dbd41501195bb35b2ed55da3b471a784fb..725a330235a1d541da3cdf31e19f4b69060a0252 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -724,8 +724,6 @@ impl TerminalPanel { cx: &mut ViewContext, ) -> Task>> { let workspace = self.workspace.clone(); - self.pending_terminals_to_add += 1; - cx.spawn(|terminal_panel, mut cx| async move { if workspace.update(&mut cx, |workspace, cx| { !is_enabled_in_workspace(workspace, cx) @@ -753,10 +751,6 @@ impl TerminalPanel { cx, ) })); - pane.update(cx, |pane, cx| { - let focus = pane.has_focus(cx); - pane.add_item(terminal_view, true, focus, None, cx); - }); match reveal_strategy { RevealStrategy::Always => { @@ -767,6 +761,13 @@ impl TerminalPanel { } 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) })?; terminal_panel.update(&mut cx, |this, cx| {