aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/lumina-session
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/core/lumina-session')
-rw-r--r--src-qt5/core/lumina-session/session.cpp1
-rw-r--r--src-qt5/core/lumina-session/session.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/src-qt5/core/lumina-session/session.cpp b/src-qt5/core/lumina-session/session.cpp
index 9aebec49..fb9c6cd1 100644
--- a/src-qt5/core/lumina-session/session.cpp
+++ b/src-qt5/core/lumina-session/session.cpp
@@ -39,6 +39,7 @@ void LSession::procFinished(){
if(!stopping){
//See if this process is the main desktop binary
if(PROCS[i]->objectName()=="runtime"){ stopall(); }
+ else if(PROCS[i]->objectName()=="wm" && wmfails<3){ wmfails++; PROCS[i]->start(QIODevice::ReadOnly); } //restart the WM
//if(PROCS[i]->program().section("/",-1) == "lumina-desktop"){ stopall(); } //start closing down everything
//else{ PROCS[i]->start(QIODevice::ReadOnly); } //restart the process
//break;
diff --git a/src-qt5/core/lumina-session/session.h b/src-qt5/core/lumina-session/session.h
index caa61ad6..36d67782 100644
--- a/src-qt5/core/lumina-session/session.h
+++ b/src-qt5/core/lumina-session/session.h
@@ -59,6 +59,7 @@ class LSession : public QObject{
private:
QList<QProcess*> PROCS;
bool stopping;
+ int wmfails;
private slots:
void stopall();
@@ -69,7 +70,7 @@ private slots:
public:
LSession(){
- stopping = false;
+ stopping = false; wmfails = 0;
}
~LSession(){ }
bgstack15