┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphinmainwindow.cpp2
-rw-r--r--src/panels/terminal/terminalpanel.cpp8
-rw-r--r--src/panels/terminal/terminalpanel.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index f5ac94f40..9324cdb21 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -1798,6 +1798,8 @@ void DolphinMainWindow::setupDockWidgets()
terminalDock->setWidget(terminalPanel);
connect(terminalPanel, SIGNAL(hideTerminalPanel()), terminalDock, SLOT(hide()));
+ connect(terminalDock, SIGNAL(visibilityChanged(bool)),
+ terminalPanel, SLOT(visibilityChanged(bool)));
QAction* terminalAction = terminalDock->toggleViewAction();
terminalAction->setShortcut(Qt::Key_F4);
diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp
index 8977111f8..b45be621a 100644
--- a/src/panels/terminal/terminalpanel.cpp
+++ b/src/panels/terminal/terminalpanel.cpp
@@ -54,6 +54,14 @@ void TerminalPanel::terminalExited()
m_terminal = 0;
}
+void TerminalPanel::visibilityChanged(bool visible)
+{
+ if (!visible && m_terminal && (m_terminal->foregroundProcessId() == -1)) {
+ // Make sure this terminal does not prevent unmounting any removable drives
+ changeDir(KUrl::fromPath("/"));
+ }
+}
+
bool TerminalPanel::urlChanged()
{
if (!url().isValid()) {
diff --git a/src/panels/terminal/terminalpanel.h b/src/panels/terminal/terminalpanel.h
index e4d76d54c..288cb05d3 100644
--- a/src/panels/terminal/terminalpanel.h
+++ b/src/panels/terminal/terminalpanel.h
@@ -44,6 +44,7 @@ public:
public slots:
void terminalExited();
+ void visibilityChanged(bool visible);
signals:
void hideTerminalPanel();