aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop
diff options
context:
space:
mode:
authorKris Moore <kris@pcbsd.org>2016-02-06 14:45:45 -0500
committerKris Moore <kris@pcbsd.org>2016-02-06 14:45:45 -0500
commitda3aa3006a42b2bf767f0aaf2a216bf2b331cae5 (patch)
tree5c98cbe250a042ce4ea3451b17c4661aedcbcc38 /lumina-desktop
parentFix a bug with Lumina-DE segfaulting during wakeup on some specific (diff)
downloadlumina-da3aa3006a42b2bf767f0aaf2a216bf2b331cae5.tar.gz
lumina-da3aa3006a42b2bf767f0aaf2a216bf2b331cae5.tar.bz2
lumina-da3aa3006a42b2bf767f0aaf2a216bf2b331cae5.zip
Increase the delay before checkingDesktop setup, since we can get
into a weird race condition where xorg is still deleting / adding screens, in the middle of Lumina trying to re-apply desktops to them. Also, put sanity check on DESKTOPS.length()
Diffstat (limited to 'lumina-desktop')
-rw-r--r--lumina-desktop/LSession.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lumina-desktop/LSession.cpp b/lumina-desktop/LSession.cpp
index 8215cb5a..c8cf2049 100644
--- a/lumina-desktop/LSession.cpp
+++ b/lumina-desktop/LSession.cpp
@@ -48,7 +48,8 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu
TrayStopping = false;
screenTimer = new QTimer(this);
screenTimer->setSingleShot(true);
- screenTimer->setInterval(200); //0.2 seconds
+ screenTimer->setInterval(2000); //2 seconds - This needs to be long(ish) to prevent being called while
+ // X is still setting up any screens
connect(screenTimer, SIGNAL(timeout()), this, SLOT(updateDesktops()) );
for(int i=1; i<argc; i++){
if( QString::fromLocal8Bit(argv[i]) == "--noclean" ){ cleansession = false; break; }
@@ -502,7 +503,8 @@ void LSession::updateDesktops(){
}
if(!firstrun){//Done right here on first run
//Now go through and make sure to delete any desktops for detached screens
-
+
+ if(DESKTOPS.length() < 1){ return; }
for(int i=0; i<DESKTOPS.length(); i++){
// Check for 0x0 screen geom
bgstack15