From 6dd570e1c1678a2f9709f494f91ab19772638fd5 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 28 Feb 2017 16:10:34 -0500 Subject: 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. --- src-qt5/core/lumina-desktop/LDesktop.cpp | 10 +++++++++- src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src-qt5/core/lumina-desktop') 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; iupdate(); } - //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(){ diff --git a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp index 75e4affc..f233983c 100644 --- a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp +++ b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp @@ -18,7 +18,7 @@ // =================== LDesktopPluginSpace::LDesktopPluginSpace() : QWidget(){ this->setObjectName("LuminaDesktopPluginSpace"); - this->setAttribute(Qt::WA_TranslucentBackground); + //this->setAttribute(Qt::WA_TranslucentBackground); //this->setAttribute(Qt::WA_NoSystemBackground); this->setAutoFillBackground(false); this->setStyleSheet("QWidget#LuminaDesktopPluginSpace{ border: none; background: transparent; }"); -- cgit