┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/terminal
diff options
context:
space:
mode:
authorAdrián Chaves Fernández (Gallaecio) <[email protected]>2018-01-18 18:49:54 +0100
committerAdrián Chaves Fernández (Gallaecio) <[email protected]>2018-01-18 18:51:27 +0100
commit4e40fe810d324e69eeb824e40011e509e6676aaf (patch)
tree272da958e8b7e2774b72aab206cc0bd67ef6d119 /src/panels/terminal
parent1a6b3c0a2baba955259d6083c0a3f25dfb44a682 (diff)
Set the focus to the active view, after leaving the terminal panel
Summary: BUG: 298467 Set the focus to the active view, after leaving the terminal panel. This is a fork of the patch at https://git.reviewboard.kde.org/r/116118/ by @emmanuelp which should fix the issue with the original patch reported by Frank Reininghaus. Test Plan: Works for me. Reviewers: #dolphin, emmanuelp, ngraham Reviewed By: #dolphin, ngraham Subscribers: ngraham, emmanuelp Differential Revision: https://phabricator.kde.org/D9955
Diffstat (limited to 'src/panels/terminal')
-rw-r--r--src/panels/terminal/terminalpanel.cpp11
-rw-r--r--src/panels/terminal/terminalpanel.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp
index c205374cd..849d3f8c9 100644
--- a/src/panels/terminal/terminalpanel.cpp
+++ b/src/panels/terminal/terminalpanel.cpp
@@ -73,12 +73,19 @@ void TerminalPanel::terminalExited()
emit hideTerminalPanel();
}
+bool TerminalPanel::isHiddenInVisibleWindow()
+{
+ return parentWidget()
+ && parentWidget()->isHidden()
+ && m_terminal
+ && (m_terminal->foregroundProcessId() == -1);
+}
+
void TerminalPanel::dockVisibilityChanged()
{
// Only react when the DockWidget itself (not some parent) is hidden. This way we don't
// respond when e.g. Dolphin is minimized.
- if (parentWidget() && parentWidget()->isHidden() &&
- m_terminal && (m_terminal->foregroundProcessId() == -1)) {
+ if (isHiddenInVisibleWindow()) {
// Make sure that the following "cd /" command will not affect the view.
disconnect(m_konsolePart, SIGNAL(currentDirectoryChanged(QString)),
this, SLOT(slotKonsolePartCurrentDirectoryChanged(QString)));
diff --git a/src/panels/terminal/terminalpanel.h b/src/panels/terminal/terminalpanel.h
index 4c0b93a17..edaa2a6f3 100644
--- a/src/panels/terminal/terminalpanel.h
+++ b/src/panels/terminal/terminalpanel.h
@@ -54,6 +54,7 @@ public:
*/
void goHome();
QString currentWorkingDirectory();
+ bool isHiddenInVisibleWindow();
public slots:
void terminalExited();