aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/lumina-desktop/panel-plugins/systemtray
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/core/lumina-desktop/panel-plugins/systemtray')
-rw-r--r--src-qt5/core/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp12
-rw-r--r--src-qt5/core/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp4
2 files changed, 9 insertions, 7 deletions
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
index a71fd57e..edd0a4eb 100644
--- a/src-qt5/core/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
+++ b/src-qt5/core/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp
@@ -80,6 +80,7 @@ void LSysTray::checkAll(){
if(!isRunning || stopping || checking){ pending = true; return; } //Don't check if not running at the moment
checking = true;
pending = false;
+ bool listChanged = false;
//Make sure this tray should handle the windows (was not disabled in the backend)
bool TrayRunning = LSession::handle()->registerVisualTray(this->winId());
//qDebug() << "System Tray: Check tray apps";
@@ -94,6 +95,7 @@ void LSysTray::checkAll(){
LI->removeWidget(cont);
cont->deleteLater();
i--; //List size changed
+ listChanged = true;
//Re-adjust the maximum widget size to account for what is left
if(this->layout()->direction()==QBoxLayout::LeftToRight){
this->setMaximumSize( trayIcons.length()*this->height(), 10000);
@@ -103,7 +105,7 @@ void LSysTray::checkAll(){
}else{
//Tray Icon already exists
//qDebug() << " - SysTray: Update Icon";
- trayIcons[i]->update();
+ //trayIcons[i]->repaint();
wins.removeAt(index); //Already found - remove from the list
}
}
@@ -139,13 +141,14 @@ void LSysTray::checkAll(){
continue;
}
LI->update(); //make sure there is no blank space in the layout
+ listChanged = true;
}
- /*if(listChanged){
+ if(listChanged){
//Icons got moved around: be sure to re-draw all of them to fix visuals
for(int i=0; i<trayIcons.length(); i++){
- trayIcons[i]->update();
+ trayIcons[i]->repaint();
}
- }*/
+ }
//qDebug() << " - System Tray: check done";
checking = false;
if(pending){ QTimer::singleShot(0,this, SLOT(checkAll()) ); }
@@ -164,4 +167,3 @@ void LSysTray::UpdateTrayWindow(WId win){
//qDebug() << "System Tray: Missing Window - check all";
QTimer::singleShot(0,this, SLOT(checkAll()) );
}
-
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
index 9fdbce50..6736359c 100644
--- a/src-qt5/core/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
+++ b/src-qt5/core/lumina-desktop/panel-plugins/systemtray/TrayIcon.cpp
@@ -79,7 +79,7 @@ void TrayIcon::updateIcon(){
if(AID==0){ return; }
//Make sure the icon is square
QSize icosize = this->size();
- LSession::handle()->XCB->ResizeWindow(AID, icosize.width(), icosize.height());
+ LSession::handle()->XCB->ResizeWindow(AID, icosize.width()*2, icosize.height()*2);
QTimer::singleShot(500, this, SLOT(update()) ); //make sure to re-draw the window in a moment
}
@@ -103,7 +103,7 @@ void TrayIcon::paintEvent(QPaintEvent *event){
//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()){
- if(this->size() != pix.size()){ QTimer::singleShot(10, this, SLOT(updateIcon())); }
+ if((this->size()*2) != pix.size()){ QTimer::singleShot(10, this, SLOT(updateIcon())); }
painter.drawPixmap(0,0,this->width(), this->height(), pix.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation) );
badpaints = 0; //good paint
}else{
bgstack15