aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/LDesktop.cpp
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2014-12-18 07:47:48 -0500
committerKen Moore <ken@pcbsd.org>2014-12-18 07:47:48 -0500
commit71c2fda95224f0a04316c5f1059628d33564ca43 (patch)
treeca74dbe49dd2f555e73893e7f5f06154d6dab763 /lumina-desktop/LDesktop.cpp
parentOops, forgot to add knowledge of the new "Wine" app category to the userbutton. (diff)
downloadlumina-71c2fda95224f0a04316c5f1059628d33564ca43.tar.gz
lumina-71c2fda95224f0a04316c5f1059628d33564ca43.tar.bz2
lumina-71c2fda95224f0a04316c5f1059628d33564ca43.zip
Commit a checkpoint on the conversion of Lumina to Qt5.
It is functional at the moment, but still has a few rough edges with regards to the X11 background interface (due to the move from XLib to XCB in Qt5). This reulst in some of the window manager interactions not behaving properly (such as sticky status on panels).
Diffstat (limited to 'lumina-desktop/LDesktop.cpp')
-rw-r--r--lumina-desktop/LDesktop.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/lumina-desktop/LDesktop.cpp b/lumina-desktop/LDesktop.cpp
index 9db4eac7..07225fad 100644
--- a/lumina-desktop/LDesktop.cpp
+++ b/lumina-desktop/LDesktop.cpp
@@ -11,6 +11,8 @@
#include <LuminaX11.h>
#include "LWinInfo.h"
+#define DEBUG 1
+
LDesktop::LDesktop(int deskNum) : QObject(){
DPREFIX = "desktop-"+QString::number(deskNum)+"/";
@@ -103,9 +105,9 @@ void LDesktop::CreateDesktopPluginContainer(LDPlugin *plug){
// =====================
void LDesktop::InitDesktop(){
//This is called *once* during the main initialization routines
- qDebug() << "Init Desktop:" << desktopnumber;
+ if(DEBUG){ qDebug() << "Init Desktop:" << desktopnumber; }
connect(desktop, SIGNAL(resized(int)), this, SLOT(UpdateGeometry(int)));
- qDebug() << "Desktop #"<<desktopnumber<<" -> "<< desktop->screenGeometry(desktopnumber).x() << desktop->screenGeometry(desktopnumber).y() << desktop->screenGeometry(desktopnumber).width() << desktop->screenGeometry(desktopnumber).height();
+ if(DEBUG){ qDebug() << "Desktop #"<<desktopnumber<<" -> "<< desktop->screenGeometry(desktopnumber).x() << desktop->screenGeometry(desktopnumber).y() << desktop->screenGeometry(desktopnumber).width() << desktop->screenGeometry(desktopnumber).height(); }
deskMenu = new QMenu(0);
connect(deskMenu, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) );
winMenu = new QMenu(0);
@@ -124,17 +126,20 @@ void LDesktop::InitDesktop(){
watcher->addPath(settings->fileName());
connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(SettingsChanged()) );
+ if(DEBUG){ qDebug() << "Create bgWindow"; }
bgWindow = new QWidget();
bgWindow->setObjectName("bgWindow");
bgWindow->setContextMenuPolicy(Qt::CustomContextMenu);
+ bgWindow->setWindowFlags(Qt::FramelessWindowHint);
LX11::SetAsDesktop(bgWindow->winId());
bgWindow->setGeometry(desktop->screenGeometry(desktopnumber));
connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) );
+ if(DEBUG){ qDebug() << "Create bgDesktop"; }
bgDesktop = new QMdiArea(bgWindow);
//Make sure the desktop area is transparent to show the background
bgDesktop->setBackground( QBrush(Qt::NoBrush) );
bgDesktop->setStyleSheet( "QMdiArea{ border: none; background: transparent;}" );
- qDebug() << " - Desktop Init Done:" << desktopnumber;
+ if(DEBUG){ qDebug() << " - Desktop Init Done:" << desktopnumber; }
//Start the update processes
QTimer::singleShot(10,this, SLOT(UpdateMenu()) );
QTimer::singleShot(0,this, SLOT(UpdateBackground()) );
@@ -155,10 +160,10 @@ void LDesktop::SettingsChanged(){
}
void LDesktop::UpdateMenu(bool fast){
- //qDebug() << " - Update Menu:" << desktopnumber;
+ if(DEBUG){ qDebug() << " - Update Menu:" << desktopnumber; }
//Put a label at the top
int num = LX11::GetCurrentDesktop();
- //qDebug() << "Found desktop number:" << num;
+ if(DEBUG){ qDebug() << "Found workspace number:" << num; }
if(num < 0){ workspacelabel->setText( "<b>"+tr("Lumina Desktop")+"</b>"); }
else{ workspacelabel->setText( "<b>"+QString(tr("Workspace %1")).arg(QString::number(num+1))+"</b>"); }
if(fast && usewinmenu){ UpdateWinMenu(); }
@@ -216,7 +221,7 @@ void LDesktop::winClicked(QAction* act){
}
void LDesktop::UpdateDesktop(){
- qDebug() << " - Update Desktop Plugins for screen:" << desktopnumber;
+ if(DEBUG){ qDebug() << " - Update Desktop Plugins for screen:" << desktopnumber; }
if(deskupdating){ return; } //make sure to only run this once
deskupdating = true;
QStringList plugins = settings->value(DPREFIX+"pluginlist", QStringList()).toStringList();
@@ -372,7 +377,7 @@ void LDesktop::DesktopPluginRemoved(QString ID){
}
void LDesktop::UpdatePanels(){
- qDebug() << " - Update Panels For Screen:" << desktopnumber;
+ if(DEBUG){ qDebug() << " - Update Panels For Screen:" << desktopnumber; }
int panels = settings->value(DPREFIX+"panels", -1).toInt();
if(panels==-1 && defaultdesktop){ panels=1; } //need at least 1 panel on the primary desktop
//Remove all extra panels
@@ -394,7 +399,7 @@ void LDesktop::UpdatePanels(){
}
}
if(!found){
- qDebug() << " -- Create panel "<< i;
+ if(DEBUG){ qDebug() << " -- Create panel "<< i; }
//New panel
LPanel *pan = new LPanel(settings, desktopnumber, i, bgWindow);
PANELS << pan;
@@ -412,6 +417,7 @@ void LDesktop::UpdateDesktopPluginArea(){
}
//Now make sure the desktop plugin area is only the visible area
QRect rec = visReg.boundingRect();
+ //LSession::handle()->XCB->SetScreenWorkArea((unsigned int) desktopnumber, rec);
//Now remove the X offset to place it on the current screen (needs widget-coords, not global)
rec.moveTopLeft( QPoint( rec.x()-desktop->screenGeometry(desktopnumber).x() , rec.y() ) );
//qDebug() << "DPlug Area:" << rec.x() << rec.y() << rec.width() << rec.height();
@@ -426,7 +432,7 @@ void LDesktop::UpdateBackground(){
//Get the current Background
if(bgupdating || bgWindow==0){ return; } //prevent multiple calls to this at the same time
bgupdating = true;
- qDebug() << " - Update Desktop Background for screen:" << desktopnumber;
+ if(DEBUG){ qDebug() << " - Update Desktop Background for screen:" << desktopnumber; }
//Get the list of background(s) to show
QStringList bgL = settings->value(DPREFIX+"background/filelist", QStringList()).toStringList();
//qDebug() << " - List:" << bgL << CBG;
bgstack15