From 1647968b92fa212e95f63a6e4b74ae4700a25306 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 8 Jun 2023 15:10:21 +0200 Subject: [PATCH] Terminal: Don't always open default terminals If a "Run in Terminal" app is started, or the user selects "Open Terminal here" we don't want to open another terminal when the pane becomes visible. So we move the check after we added the terminal. Change-Id: Idd90d6e9dbba513dd020d91ffebb594fd90d688a Reviewed-by: Artem Sokolovskii Reviewed-by: David Schulz --- src/plugins/terminal/terminalpane.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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(); }