diff options
Diffstat (limited to 'src-qt5')
-rw-r--r-- | src-qt5/core/lumina-desktop/LDesktopBackground.cpp | 7 | ||||
-rw-r--r-- | src-qt5/core/lumina-desktop/LPanel.cpp | 10 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src-qt5/core/lumina-desktop/LDesktopBackground.cpp b/src-qt5/core/lumina-desktop/LDesktopBackground.cpp index 3d33db71..c3d67117 100644 --- a/src-qt5/core/lumina-desktop/LDesktopBackground.cpp +++ b/src-qt5/core/lumina-desktop/LDesktopBackground.cpp @@ -7,12 +7,13 @@ #include "LDesktopBackground.h" #include <QPainter> +#include <QPaintEvent> -void LDesktopBackground::paintEvent(QPaintEvent *) { +void LDesktopBackground::paintEvent(QPaintEvent *ev) { if (bgPixmap != NULL) { QPainter painter(this); painter.setBrush(*bgPixmap); - painter.drawRect(0, 0, width(), height()); + painter.drawRect(ev->rect()); } } @@ -66,7 +67,7 @@ void LDesktopBackground::setBackground(const QString& bgFile, const QString& for painter.setBrushOrigin(dx, dy); painter.drawRect(dx, dy, drawWidth, drawHeight); } - update(); + this->repaint(this->geometry()); //make sure the entire thing gets repainted right away show(); } diff --git a/src-qt5/core/lumina-desktop/LPanel.cpp b/src-qt5/core/lumina-desktop/LPanel.cpp index b0abf498..1308d61f 100644 --- a/src-qt5/core/lumina-desktop/LPanel.cpp +++ b/src-qt5/core/lumina-desktop/LPanel.cpp @@ -324,12 +324,12 @@ void LPanel::paintEvent(QPaintEvent *event){ QPainter *painter = new QPainter(this); //qDebug() << "Paint Panel:" << PPREFIX; //Make sure the base background of the event rectangle is the associated rectangle from the BGWindow - QRect rec = this->geometry(); //start with the global geometry of the panel + QRect rec = event->rect();//this->geometry(); //start with the global geometry of the panel //Need to translate that rectangle to the background image coordinates - //qDebug() << " - Rec:" << rec << hidden << this->geometry(); - rec.moveTo( rec.x()-LSession::handle()->screenGeom(screennum).x(), rec.y()-LSession::handle()->screenGeom(screennum).y() ); - //qDebug() << " - Adjusted Global Rec:" << rec; - painter->drawPixmap(QRect(0,0,this->width(), this->height()), bgWindow->grab(rec) ); + //qDebug() << " - Rec:" << rec << hidden << this->geometry() << bgWindow->geometry(); + rec.moveTo( bgWindow->mapFromGlobal( this->mapToGlobal(rec.topLeft()) ) ); //(rec.x()-LSession::handle()->screenGeom(screennum).x(), rec.y()-LSession::handle()->screenGeom(screennum).y() ); + //qDebug() << " - Adjusted Window Rec:" << rec; + painter->drawPixmap(event->rect(), bgWindow->grab(rec) ); } QWidget::paintEvent(event); //now pass the event along to the normal painting event } |