diff --git a/src/plugins/terminal/terminalpane.cpp b/src/plugins/terminal/terminalpane.cpp index df3a37ee37c..821ee0d921a 100644 --- a/src/plugins/terminal/terminalpane.cpp +++ b/src/plugins/terminal/terminalpane.cpp @@ -114,8 +114,6 @@ static std::optional startupProjectDirectory() void TerminalPane::openTerminal(const OpenTerminalParameters ¶meters) { OpenTerminalParameters parametersCopy{parameters}; - if (!m_isVisible) - emit showPage(IOutputPane::ModeSwitch); if (!parametersCopy.workingDirectory) { const std::optional projectDir = startupProjectDirectory(); @@ -139,6 +137,9 @@ void TerminalPane::openTerminal(const OpenTerminalParameters ¶meters) m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminalWidget, Tr::tr("Terminal"))); setupTerminalWidget(terminalWidget); + if (!m_isVisible) + emit showPage(IOutputPane::ModeSwitch); + m_tabWidget.currentWidget()->setFocus(); emit navigateStateUpdate(); @@ -146,11 +147,14 @@ void TerminalPane::openTerminal(const OpenTerminalParameters ¶meters) void TerminalPane::addTerminal(TerminalWidget *terminal, const QString &title) { - if (!m_isVisible) - emit showPage(IOutputPane::ModeSwitch); m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminal, title)); setupTerminalWidget(terminal); + if (!m_isVisible) + emit showPage(IOutputPane::ModeSwitch); + + terminal->setFocus(); + emit navigateStateUpdate(); }