summaryrefslogtreecommitdiffstats
path: root/src/windowmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/windowmanager.cpp')
-rw-r--r--src/windowmanager.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/windowmanager.cpp b/src/windowmanager.cpp
index 2505c89..c05e234 100644
--- a/src/windowmanager.cpp
+++ b/src/windowmanager.cpp
@@ -38,12 +38,16 @@ void ensureRunning()
});
}
-void stopOwnInstance()
+void stopOwnInstance(bool waitSync)
{
if (wm.state() == QProcess::Running) {
qDebug() << "- Politely terminating spawned WM";
- wm.terminate();
- QTimer::singleShot(500, killInstance);
+ if (waitSync) {
+ killInstance();
+ } else {
+ wm.terminate();
+ QTimer::singleShot(500, killInstance);
+ }
}
}
@@ -51,7 +55,9 @@ void killInstance()
{
if (wm.state() == QProcess::Running) {
wm.terminate();
- QThread::msleep(50);
+ }
+ for (int i = 0; i < 50 && wm.state() == QProcess::Running; ++i) {
+ QThread::msleep(10);
}
if (wm.state() == QProcess::Running) {
qDebug() << "- Forcefully killing spawned WM";