aboutsummaryrefslogtreecommitdiff
path: root/lumina-wm-INCOMPLETE/WMSession.cpp
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2015-11-20 08:59:06 -0500
committerKen Moore <moorekou@gmail.com>2015-11-20 08:59:06 -0500
commitd0def86a98fdcc6d231d07f571a4555195d6760c (patch)
tree2c844b067aab9b894a45c6c279a104247a08e44d /lumina-wm-INCOMPLETE/WMSession.cpp
parentAdd the final pieces of the EWMH support functions to the Lumina library. (diff)
downloadlumina-d0def86a98fdcc6d231d07f571a4555195d6760c.tar.gz
lumina-d0def86a98fdcc6d231d07f571a4555195d6760c.tar.bz2
lumina-d0def86a98fdcc6d231d07f571a4555195d6760c.zip
Quick checkpoint for the window manager: NOT STABLE - crashes on window close right now.
Diffstat (limited to 'lumina-wm-INCOMPLETE/WMSession.cpp')
-rw-r--r--lumina-wm-INCOMPLETE/WMSession.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/lumina-wm-INCOMPLETE/WMSession.cpp b/lumina-wm-INCOMPLETE/WMSession.cpp
index bed31ed9..4a7c6e02 100644
--- a/lumina-wm-INCOMPLETE/WMSession.cpp
+++ b/lumina-wm-INCOMPLETE/WMSession.cpp
@@ -15,9 +15,18 @@ WMSession::WMSession(){
EFILTER = new EventFilter();
if(DEBUG){ qDebug() << "Creating Screen Saver..."; }
SS = new LScreenSaver();
-
+ if(DEBUG){ qDebug() << "Creating Window Manager..."; }
+ WM = new LWindowManager();
+ EVThread = new QThread();
+ EFILTER->moveToThread(EVThread);
//Setup connections
connect(EFILTER, SIGNAL(NewInputEvent()), SS, SLOT(newInputEvent()) );
+ connect(EFILTER, SIGNAL(NewManagedWindow(WId)), WM, SLOT(NewWindow(WId)) );
+ connect(EFILTER, SIGNAL(WindowClosed(WId)), WM, SLOT(ClosedWindow(WId)) );
+ connect(EFILTER, SIGNAL(ModifyWindow(WId, LWM::WindowAction)), WM, SLOT(ModifyWindow(WId,LWM::WindowAction)) );
+ connect(SS, SIGNAL(StartingScreenSaver()), EFILTER, SLOT(StartedSS()) );
+ connect(SS, SIGNAL(ClosingScreenSaver()), EFILTER, SLOT(StoppedSS()) );
+ connect(WM, SIGNAL(NewFullScreenWindows(QList<WId>)), EFILTER, SLOT(FullScreenChanged(QList<WId>)) );
}
WMSession::~WMSession(){
@@ -29,7 +38,10 @@ void WMSession::start(bool SSONLY){
SS->start();
if(SSONLY){ return; }
//Now start pulling/filtering events
+ if(DEBUG){ qDebug() << "Starting Window Manager..."; }
+ WM->start();
if(DEBUG){ qDebug() << "Starting Event Filter..."; }
+ EVThread->start();
EFILTER->start();
if(DEBUG){ qDebug() << "Done Starting WM session..."; }
}
bgstack15