]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Merge branch 'release/22.04'
authorFelix Ernst <fe.a.ernst@gmail.com>
Wed, 27 Apr 2022 11:08:09 +0000 (13:08 +0200)
committerFelix Ernst <fe.a.ernst@gmail.com>
Wed, 27 Apr 2022 11:08:09 +0000 (13:08 +0200)
src/panels/terminal/terminalpanel.cpp

index 75bfe93d011583949b39753a9d4d7e3a798cf7bf..d87ae3b1e84c6f469017ea001fa4dc445f19f398 100644 (file)
@@ -234,7 +234,9 @@ void TerminalPanel::changeDir(const QUrl& url)
 
 void TerminalPanel::sendCdToTerminal(const QString& dir, HistoryPolicy addToHistory)
 {
-    if (dir == m_konsolePartCurrentDirectory) {
+    if (dir == m_konsolePartCurrentDirectory   // We are already there
+        && m_sendCdToTerminalHistory.isEmpty() // â€¦and that is not because the terminal couldn't keep up
+    ) {
         m_clearTerminal = false;
         return;
     }
@@ -252,8 +254,6 @@ void TerminalPanel::sendCdToTerminal(const QString& dir, HistoryPolicy addToHist
     }
 #endif
 
-    m_terminal->sendInput(" cd " + KShell::quoteArg(dir) + '\n');
-
     // We want to ignore the currentDirectoryChanged(QString) signal, which we will receive after
     // the directory change, because this directory change is not caused by a "cd" command that the
     // user entered in the panel. Therefore, we have to remember 'dir'. Note that it could also be
@@ -261,6 +261,8 @@ void TerminalPanel::sendCdToTerminal(const QString& dir, HistoryPolicy addToHist
     if (addToHistory == HistoryPolicy::AddToHistory)
         m_sendCdToTerminalHistory.enqueue(QDir(dir).canonicalPath());
 
+    m_terminal->sendInput(" cd " + KShell::quoteArg(dir) + '\n');
+
     if (m_clearTerminal) {
         m_terminal->sendInput(QStringLiteral(" clear\n"));
         m_clearTerminal = false;