diff options
author | Ken Moore <moorekou@gmail.com> | 2015-11-20 08:59:06 -0500 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2015-11-20 08:59:06 -0500 |
commit | d0def86a98fdcc6d231d07f571a4555195d6760c (patch) | |
tree | 2c844b067aab9b894a45c6c279a104247a08e44d /lumina-wm-INCOMPLETE/WMSession.cpp | |
parent | Add the final pieces of the EWMH support functions to the Lumina library. (diff) | |
download | lumina-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.cpp | 14 |
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..."; } } |