aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/panel-plugins/systemtray
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2015-04-20 10:47:57 -0400
committerKen Moore <ken@pcbsd.org>2015-04-20 10:47:57 -0400
commit570272ccbe285afcad3f5b4ab00a18475ef163ed (patch)
tree09c4ac5e4440d61453d62de843afc19f5af312d4 /lumina-desktop/panel-plugins/systemtray
parentMerge pull request #91 from Nanolx/lumina-panel-date (diff)
downloadlumina-570272ccbe285afcad3f5b4ab00a18475ef163ed.tar.gz
lumina-570272ccbe285afcad3f5b4ab00a18475ef163ed.tar.bz2
lumina-570272ccbe285afcad3f5b4ab00a18475ef163ed.zip
Remove the last libX11 usage in the sytem tray protocols. Move the damage ID creation to XCB, and place it within the embedding routine in LuminaX11 instead.
Diffstat (limited to 'lumina-desktop/panel-plugins/systemtray')
-rw-r--r--lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp15
-rw-r--r--lumina-desktop/panel-plugins/systemtray/TrayIcon.h14
2 files changed, 9 insertions, 20 deletions
diff --git a/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp b/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
index 8d0cacb3..a35db4d7 100644
--- a/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
+++ b/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
@@ -8,19 +8,20 @@
//#include <X11/Xlib.h>
//#include <X11/Xutil.h>
-#include <X11/extensions/Xdamage.h>
+//#include <X11/extensions/Xdamage.h>
//#include <xcb/damage.h>
//static xcb_damage_damage_t dmgID;
#include <LSession.h>
#include <QScreen>
-
-static int dmgID = 0;
+#include <LuminaX11.h>
+//static int dmgID = 0;
TrayIcon::TrayIcon(QWidget *parent) : QWidget(parent){
AID = 0; //nothing yet
IID = 0;
+ dmgID = 0;
}
TrayIcon::~TrayIcon(){
@@ -38,12 +39,10 @@ void TrayIcon::attachApp(WId id){
else if(AID!=0){ qWarning() << "Tray Icon is already attached to a window!"; return; }
AID = id;
IID = this->winId(); //embed directly into this widget
- //IID = LX11::CreateWindow( this->winId(), this->rect() ); //Create an intermediate window to be the parent
- if( LSession::handle()->XCB->EmbedWindow(AID, IID) ){
+ dmgID = LSession::handle()->XCB->EmbedWindow(AID, IID);
+ if( dmgID != 0 ){
LX11::RestoreWindow(AID); //make it visible
- //XSelectInput(QX11Info::display(), AID, StructureNotifyMask);
- //xcb_damage_create(QX11Info::connection(), dmgID, AID, XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES);
- dmgID = XDamageCreate( QX11Info::display(), AID, XDamageReportRawRectangles );
+ //dmgID = XDamageCreate( QX11Info::display(), AID, XDamageReportRawRectangles );
qDebug() << "New System Tray App:" << AID;
QTimer::singleShot(1000, this, SLOT(updateIcon()) );
}else{
diff --git a/lumina-desktop/panel-plugins/systemtray/TrayIcon.h b/lumina-desktop/panel-plugins/systemtray/TrayIcon.h
index a3cbac31..18c51a66 100644
--- a/lumina-desktop/panel-plugins/systemtray/TrayIcon.h
+++ b/lumina-desktop/panel-plugins/systemtray/TrayIcon.h
@@ -22,9 +22,7 @@
#include <QImage>
// libLumina includes
-#include <LuminaX11.h>
-
-//Local includes
+//#include <LuminaX11.h>
class TrayIcon : public QWidget{
Q_OBJECT
@@ -42,19 +40,11 @@ public slots:
private:
WId IID, AID; //icon ID and app ID
-
-//private slots:
- //void slotAttach(); //so that the attachment can be done in a new thread
-
+ uint dmgID;
protected:
void paintEvent(QPaintEvent *event);
- //void moveEvent(QMoveEvent *event);
void resizeEvent(QResizeEvent *event);
- //bool x11Event(XEvent *event);
-//signals:
- //void AppClosed();
- //void AppAttached();
};
#endif \ No newline at end of file
bgstack15