diff options
author | Ken Moore <ken@ixsystems.com> | 2017-02-28 16:10:34 -0500 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-02-28 16:10:34 -0500 |
commit | 6dd570e1c1678a2f9709f494f91ab19772638fd5 (patch) | |
tree | 2587a567537ef679823b5326437e4708b7660288 /src-qt5/core/lumina-desktop/LDesktop.cpp | |
parent | Commit a bit more work on the RandR interface. Starting to drill down into th... (diff) | |
download | lumina-6dd570e1c1678a2f9709f494f91ab19772638fd5.tar.gz lumina-6dd570e1c1678a2f9709f494f91ab19772638fd5.tar.bz2 lumina-6dd570e1c1678a2f9709f494f91ab19772638fd5.zip |
Track down and fix a really weird Fluxbox bug:
It looks like the newer version does not like the window workspace assignment to be "-1" any more, it starts to lose it's mind and treat windows really weird now. Just use workspace 0 instead for now, and hope that Fluxbox continues to respect the window "sticky" settings for the forseeable future.
Diffstat (limited to 'src-qt5/core/lumina-desktop/LDesktop.cpp')
-rw-r--r-- | src-qt5/core/lumina-desktop/LDesktop.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src-qt5/core/lumina-desktop/LDesktop.cpp b/src-qt5/core/lumina-desktop/LDesktop.cpp index 92cef4d1..7f61f19c 100644 --- a/src-qt5/core/lumina-desktop/LDesktop.cpp +++ b/src-qt5/core/lumina-desktop/LDesktop.cpp @@ -486,20 +486,28 @@ void LDesktop::UpdateDesktopPluginArea(){ QRect rec = visReg.boundingRect(); // QRect rec = LSession::desktop()->availableGeometry(Screen()); qDebug() << " - DPArea: Panel-Adjusted rectangle:" << rec; + qDebug() << " - DPArea: Screen Geometry:" << LSession::desktop()->screenGeometry(Screen()); + qDebug() << " - DPArea: Current Geometry:" << bgDesktop->geometry(); //LSession::handle()->XCB->SetScreenWorkArea((unsigned int) Screen(), rec); //Now remove the X offset to place it on the current screen (needs widget-coords, not global) globalWorkRect = rec; //save this for later rec.moveTopLeft( QPoint( rec.x()-LSession::desktop()->screenGeometry(Screen()).x() , rec.y()-LSession::desktop()->screenGeometry(Screen()).y() ) ); //qDebug() << "DPlug Area:" << rec << bgDesktop->geometry() << LSession::handle()->desktop()->availableGeometry(bgDesktop); if(rec.size().isNull() || rec == bgDesktop->geometry()){return; } //nothing changed + //bgDesktop->show(); //make sure Fluxbox is aware of it *before* we start moving it bgDesktop->setGeometry( LSession::desktop()->screenGeometry(Screen())); + //bgDesktop->resize(LSession::desktop()->screenGeometry(Screen()).size()); + //bgDesktop->move(LSession::desktop()->screenGeometry(Screen()).topLeft()); bgDesktop->setDesktopArea( rec ); bgDesktop->UpdateGeom(); //just in case the plugin space itself needs to do anything QTimer::singleShot(10, this, SLOT(UpdateBackground()) ); //Re-paint the panels (just in case a plugin was underneath it and the panel is transparent) //for(int i=0; i<PANELS.length(); i++){ PANELS[i]->update(); } - //Make sure to re-disable any WM control flags + //Make sure to re-disable any WM control flags and reset geometry again LSession::handle()->XCB->SetDisableWMActions(bgDesktop->winId()); + //bgDesktop->setGeometry( LSession::desktop()->screenGeometry(Screen())); + //qDebug() << "Desktop Geom:" << bgDesktop->geometry(); + //qDebug() << "Screen Geom:" << LSession::desktop()->screenGeometry(Screen()); } void LDesktop::UpdateBackground(){ |