aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2017-10-25 15:42:46 -0400
committerKen Moore <ken@ixsystems.com>2017-10-25 15:42:46 -0400
commitffa97c5088b2dc88ca38044774813549468969ea (patch)
tree0155432059dcc935522812887ccada65e4c30f35
parentFix an unommented testing line in lumina-fm. (diff)
downloadlumina-ffa97c5088b2dc88ca38044774813549468969ea.tar.gz
lumina-ffa97c5088b2dc88ca38044774813549468969ea.tar.bz2
lumina-ffa97c5088b2dc88ca38044774813549468969ea.zip
Speed up some of the desktop init procedures again.
Got the "init" time from ~4.2 seconds to ~0.6 seconds on my laptop.
-rw-r--r--src-qt5/core/lumina-desktop/LSession.cpp27
-rw-r--r--src-qt5/core/lumina-desktop/LXcbEventFilter.cpp18
-rw-r--r--src-qt5/core/lumina-desktop/WMProcess.cpp6
3 files changed, 28 insertions, 23 deletions
diff --git a/src-qt5/core/lumina-desktop/LSession.cpp b/src-qt5/core/lumina-desktop/LSession.cpp
index fb24117d..6fceff1b 100644
--- a/src-qt5/core/lumina-desktop/LSession.cpp
+++ b/src-qt5/core/lumina-desktop/LSession.cpp
@@ -98,7 +98,7 @@ void LSession::setupSession(){
qDebug() << "Initializing Session";
if(QFile::exists("/tmp/.luminastopping")){ QFile::remove("/tmp/.luminastopping"); }
QTime* timer = 0;
- //if(DEBUG){ timer = new QTime(); timer->start(); qDebug() << " - Init srand:" << timer->elapsed();}
+ if(DEBUG){ timer = new QTime(); timer->start(); qDebug() << " - Init srand:" << timer->elapsed();}
//Setup the QSettings default paths
splash.showScreen("settings");
@@ -118,8 +118,8 @@ void LSession::setupSession(){
}
//use the system settings
//Setup the user's lumina settings directory as necessary
- splash.showScreen("user");
- if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();}
+ //splash.showScreen("user");
+ //if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();}
//checkUserFiles(); //adds these files to the watcher as well
//Initialize the internal variables
@@ -147,11 +147,12 @@ void LSession::setupSession(){
if(DEBUG){ qDebug() << " - Init Desktops:" << timer->elapsed();}
desktopFiles = QDir(QDir::homePath()+"/Desktop").entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs, QDir::Name | QDir::IgnoreCase | QDir::DirsFirst);
updateDesktops();
- for(int i=0; i<6; i++){ LSession::processEvents(); } //Run through this a few times so the interface systems get up and running
+ //if(DEBUG){ qDebug() << " - Process Events (6x):" << timer->elapsed();}
+ //for(int i=0; i<6; i++){ LSession::processEvents(); } //Run through this a few times so the interface systems get up and running
//Now setup the system watcher for changes
splash.showScreen("final");
- qDebug() << " - Initialize file system watcher";
+ //qDebug() << " - Initialize file system watcher";
if(DEBUG){ qDebug() << " - Init QFileSystemWatcher:" << timer->elapsed();}
watcher = new QFileSystemWatcher(this);
QString confdir = sessionsettings->fileName().section("/",0,-2);
@@ -171,14 +172,18 @@ void LSession::setupSession(){
connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(watcherChange(QString)) );
connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherChange(QString)) );
connect(this, SIGNAL(aboutToQuit()), this, SLOT(SessionEnding()) );
- if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;}
- for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen
+ //if(DEBUG){ qDebug() << " - Process Events (4x):" << timer->elapsed();}
+ //for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen
+ if(DEBUG){ qDebug() << " - Launch Startup Apps:" << timer->elapsed();}
//launchStartupApps();
QTimer::singleShot(500, this, SLOT(launchStartupApps()) );
- splash.hide();
- LSession::processEvents();
+ //if(DEBUG){ qDebug() << " - Hide Splashscreen:" << timer->elapsed();}
+ //splash.hide();
+ //LSession::processEvents();
+ if(DEBUG){ qDebug() << " - Close Splashscreen:" << timer->elapsed();}
splash.close();
- LSession::processEvents();
+ //LSession::processEvents();
+ if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;}
}
void LSession::CleanupSession(){
@@ -303,7 +308,7 @@ void LSession::launchStartupApps(){
QString sfile = sessionsettings->value("audiofiles/login", LOS::LuminaShare()+"Login.ogg").toString();
playAudioFile(sfile);
}
- qDebug() << "[DESKTOP INIT FINISHED]";
+ //qDebug() << "[DESKTOP INIT FINISHED]";
}
void LSession::StartLogout(){
diff --git a/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp b/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp
index ca7fb38d..038872ff 100644
--- a/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp
+++ b/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp
@@ -52,8 +52,8 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
session->emit WorkspaceChanged();
}else if( SysNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){
//Update the status/list of all running windows
- session->WindowPropertyEvent();
-
+ session->WindowPropertyEvent();
+
//window-specific property change
}else if( WinNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){
//Ping only that window
@@ -61,7 +61,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
session->WindowPropertyEvent();
}
break;
-//==============================
+//==============================
case XCB_CLIENT_MESSAGE:
//qDebug() << "Client Message Event";
//qDebug() << " - Root Window:" << QX11Info::appRootWindow();
@@ -72,7 +72,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
session->SysTrayDockRequest( ((xcb_client_message_event_t*)ev)->data.data32[2] );
}
//Ignore the System Tray messages at the moment (let the WM handle it)
-
+
//window-specific property changes
/*}else if( ((xcb_client_message_event_t*)ev)->type == session->XCB->EWMH._NET_WM_STATE ){
if( session->XCB->WindowIsMaximized( ((xcb_client_message_event_t*)ev)->window ) ){
@@ -86,22 +86,22 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
session->WindowPropertyEvent();
}
break;
-//==============================
+//==============================
case XCB_DESTROY_NOTIFY:
//qDebug() << "Window Closed Event";
session->WindowClosedEvent( ( (xcb_destroy_notify_event_t*)ev )->window );
break;
-//==============================
+//==============================
case XCB_CONFIGURE_NOTIFY:
//qDebug() << "Configure Notify Event";
session->WindowConfigureEvent( ((xcb_configure_notify_event_t*)ev)->window );
break;
-//==============================
+//==============================
case XCB_SELECTION_CLEAR:
//qDebug() << "Selection Clear Event";
- session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner );
+ session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner );
break;
-//==============================
+//==============================
default:
if(TrayDmgFlag!=0){
//if( (ev->response_type & ~0x80)==TrayDmgFlag){
diff --git a/src-qt5/core/lumina-desktop/WMProcess.cpp b/src-qt5/core/lumina-desktop/WMProcess.cpp
index aa01b730..0687c1fe 100644
--- a/src-qt5/core/lumina-desktop/WMProcess.cpp
+++ b/src-qt5/core/lumina-desktop/WMProcess.cpp
@@ -30,7 +30,7 @@ void WMProcess::startWM(){
if(!isRunning()){this->start(cmd); }
/*if(ssaver->state() == QProcess::NotRunning \
&& LSession::handle()->sessionSettings()->value("WindowManager", "fluxbox").toString() != "lumina-wm"){
- ssaver->start("xscreensaver -no-splash");
+ ssaver->start("xscreensaver -no-splash");
}*/
}
@@ -52,8 +52,8 @@ void WMProcess::restartWM(){
inShutdown = true;
this->kill();
if(!this->waitForFinished(5000) ){ this->terminate(); };
- inShutdown = false;
- }
+ inShutdown = false;
+ }
this->startWM();
}
bgstack15