diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/panels/terminal/terminalpanel.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp index 61d80cbfa..8977111f8 100644 --- a/src/panels/terminal/terminalpanel.cpp +++ b/src/panels/terminal/terminalpanel.cpp @@ -19,6 +19,8 @@ #include "terminalpanel.h" +#include <signal.h> + #include <KPluginLoader> #include <KPluginFactory> #include <kde_terminal_interface_v2.h> @@ -113,11 +115,8 @@ void TerminalPanel::sendCdToTerminal(const QString& dir) // The TerminalV2 interface does not provide a way to delete the // current line before sending a new input. This is mandatory, // otherwise sending a 'cd x' to a existing 'rm -rf *' might - // result in data loss. As workaround Ctrl+C is send. - QString cancel; - cancel.append(QChar(3)); - cancel.append(QChar('c')); - m_terminal->sendInput(cancel); + // result in data loss. As workaround SIGINT is send. + kill(m_terminal->terminalProcessId(), SIGINT); } m_terminal->sendInput("cd " + KShell::quoteArg(dir) + '\n'); |
