diff --git a/libs/main/console/pikbdlistener.cpp b/libs/main/console/pikbdlistener.cpp index e5034f57..4c6185bd 100644 --- a/libs/main/console/pikbdlistener.cpp +++ b/libs/main/console/pikbdlistener.cpp @@ -542,6 +542,10 @@ void PIKbdListener::readKeyboard() { void PIKbdListener::stop() { PIThread::stop(); +#ifndef WINDOWS + char c = '\n'; + write(0, &c, 1); +#endif } diff --git a/libs/main/console/pikbdlistener.h b/libs/main/console/pikbdlistener.h index fb686304..69753b4c 100644 --- a/libs/main/console/pikbdlistener.h +++ b/libs/main/console/pikbdlistener.h @@ -29,10 +29,13 @@ #include "pithread.h" #include "pitime.h" -#define WAIT_FOR_EXIT \ - while (!PIKbdListener::exiting) \ - piMSleep(PIP_MIN_MSLEEP * 5); \ - if (PIKbdListener::instance()) PIKbdListener::instance()->stopAndWait(); +#define WAIT_FOR_EXIT \ + while (!PIKbdListener::exiting) \ + piMSleep(PIP_MIN_MSLEEP * 5); \ + if (PIKbdListener::instance()) { \ + PIKbdListener::instance()->stop(); \ + PIKbdListener::instance()->waitForFinish(); \ + } class PIP_EXPORT PIKbdListener: public PIThread {