diff options
author | Kris Moore <kris@pcbsd.org> | 2016-02-06 14:45:45 -0500 |
---|---|---|
committer | Kris Moore <kris@pcbsd.org> | 2016-02-06 14:45:45 -0500 |
commit | da3aa3006a42b2bf767f0aaf2a216bf2b331cae5 (patch) | |
tree | 5c98cbe250a042ce4ea3451b17c4661aedcbcc38 /lumina-desktop | |
parent | Fix a bug with Lumina-DE segfaulting during wakeup on some specific (diff) | |
download | lumina-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.cpp | 6 |
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 |