diff options
| -rw-r--r-- | src/dolphinmainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/panels/terminal/terminalpanel.cpp | 8 | ||||
| -rw-r--r-- | src/panels/terminal/terminalpanel.h | 1 |
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(); |
