aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/panel-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lumina-desktop/panel-plugins')
-rw-r--r--lumina-desktop/panel-plugins/systemtray/LSysTray.cpp5
-rw-r--r--lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp16
2 files changed, 16 insertions, 5 deletions
diff --git a/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp b/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
index 220c7858..05c601e1 100644
--- a/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
+++ b/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
@@ -150,8 +150,9 @@ void LSysTray::UpdateTrayWindow(WId win){
for(int i=0; i<trayIcons.length(); i++){
if(trayIcons[i]->appID()==win){
qDebug() << "System Tray: Update Window " << win;
- trayIcons[i]->update();
- QTimer::singleShot(1000, trayIcons[i], SLOT(update()) );
+ trayIcons[i]->repaint(); //don't use update() because we need an instant repaint (not a cached version)
+ //QTimer::singleShot(10, trayIcons[i], SLOT(repaint()) ); //re-paint in 10ms (give it a moment to settle)
+ //QTimer::singleShot(1000, trayIcons[i], SLOT(update()) );
return; //finished now
}
}
diff --git a/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp b/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
index 3e26683f..01af6936 100644
--- a/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
+++ b/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
@@ -83,19 +83,29 @@ void TrayIcon::updateIcon(){
void TrayIcon::paintEvent(QPaintEvent *event){
QWidget::paintEvent(event); //make sure the background is already painted
if(AID!=0){
+ //Update the background on the tray app
+ //qDebug() << "Paint Tray Background";
+ //LSession::handle()->XCB->SetWindowBackground(this, this->geometry(), AID);
//qDebug() << "Paint Tray:" << AID;
QPainter painter(this);
//Now paint the tray app on top of the background
//qDebug() << " - Draw tray:" << AID << IID << this->winId();
//qDebug() << " - - " << event->rect().x() << event->rect().y() << event->rect().width() << event->rect().height();
//qDebug() << " - Get image:" << AID;
- QPixmap pix; //= WIN->icon().pixmap(this->size());
- //Try to grab the window directly with Qt
- QList<QScreen*> scrnlist = QApplication::screens();
+ QPixmap pix = LSession::handle()->XCB->TrayImage(AID); //= WIN->icon().pixmap(this->size());
+ //if(pix.isNull()){
+ //qDebug() << "Null Image - use Qt grab Window";
+ //Try to grab the window directly with Qt instead
+ /*QList<QScreen*> scrnlist = QApplication::screens();
for(int i=0; i<scrnlist.length(); i++){
pix = scrnlist[i]->grabWindow(AID);
break; //stop here
}
+ //}
+ if(pix.isNull()){
+ qDebug() << "Null Qt Pixmap - Use XCB grab image:";
+ pix = LSession::handle()->XCB->TrayImage(AID);
+ }*/
//qDebug() << " - Pix size:" << pix.size().width() << pix.size().height();
//qDebug() << " - Geom:" << this->geometry().x() << this->geometry().y() << this->geometry().width() << this->geometry().height();
if(!pix.isNull()){
bgstack15