aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop
diff options
context:
space:
mode:
Diffstat (limited to 'lumina-desktop')
-rw-r--r--lumina-desktop/LSession.cpp2
-rw-r--r--lumina-desktop/WMProcess.cpp10
-rw-r--r--lumina-desktop/WMProcess.h1
3 files changed, 12 insertions, 1 deletions
diff --git a/lumina-desktop/LSession.cpp b/lumina-desktop/LSession.cpp
index 342f509a..b61e32af 100644
--- a/lumina-desktop/LSession.cpp
+++ b/lumina-desktop/LSession.cpp
@@ -449,7 +449,7 @@ void LSession::updateDesktops(){
//QTimer::singleShot(0,DESKTOPS[i], SLOT(checkResolution()));
}
}
- WM->updateWM(); //Make sure fluxbox also gets prompted to re-load screen config
+ WM->restartWM(); //Make sure fluxbox also gets prompted to re-load screen config
}
//Make sure all the background windows are registered on the system as virtual roots
QTimer::singleShot(100,this, SLOT(registerDesktopWindows()));
diff --git a/lumina-desktop/WMProcess.cpp b/lumina-desktop/WMProcess.cpp
index e84e4c22..9e398f93 100644
--- a/lumina-desktop/WMProcess.cpp
+++ b/lumina-desktop/WMProcess.cpp
@@ -43,6 +43,16 @@ void WMProcess::stopWM(){
}
}
+void WMProcess::restartWM(){
+ if(isRunning()){
+ inShutdown = true;
+ this->kill();
+ if(!this->waitForFinished(5000) ){ this->terminate(); };
+ inShutdown = false;
+ }
+ this->startWM();
+}
+
void WMProcess::updateWM(){
if(isRunning()){
::kill(this->pid(), SIGUSR2); //send fluxbox the signal to reload it's configuration
diff --git a/lumina-desktop/WMProcess.h b/lumina-desktop/WMProcess.h
index 29a06c2f..287a8967 100644
--- a/lumina-desktop/WMProcess.h
+++ b/lumina-desktop/WMProcess.h
@@ -23,6 +23,7 @@ public:
void startWM();
void stopWM();
+ void restartWM();
void updateWM();
private:
bgstack15