From c87324e7c835cab47b6ce040dcc37f1672605ce1 Mon Sep 17 00:00:00 2001 From: liuyuanpeng Date: Fri, 30 Dec 2022 14:24:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(f=08=08=08=08=08=08=E5=8F=8C=E5=B1=8F):=20f?= =?UTF-8?q?ix=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: 修复bug#131228 Log: bug#131228 【wayland】【控制面板】【显示器】【锁屏】扩展模式下锁屏,仅一个屏幕有锁屏壁纸(必现) --- src/displaymanager.cpp | 1 - src/fullbackgroundwidget.cpp | 7 ++++++- src/plasma-shell-manager.cpp | 1 + src/powermanager.cpp | 1 - src/screensaverwidget.cpp | 12 +++++------- src/ukui-screensaver-dialog.cpp | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/displaymanager.cpp b/src/displaymanager.cpp index abc9e0b..65e9346 100644 --- a/src/displaymanager.cpp +++ b/src/displaymanager.cpp @@ -73,7 +73,6 @@ QString DisplayManager::getDisplayType() void DisplayManager::switchToGreeter() { - qDebug()<<"111111111111111111111111111111111111111111111111111111"; if(_displayType == "lightdm"){ QDBusMessage ret = dmSeatService->call("SwitchToGreeter"); handleDBusError(ret); diff --git a/src/fullbackgroundwidget.cpp b/src/fullbackgroundwidget.cpp index b77fdbb..3e4e421 100644 --- a/src/fullbackgroundwidget.cpp +++ b/src/fullbackgroundwidget.cpp @@ -849,7 +849,6 @@ void FullBackgroundWidget::showScreensaver(bool isPreview/* = false*/) } else { saverWidget->setGeometry(screen->geometry()); } - } setCursor(Qt::BlankCursor); @@ -1206,6 +1205,8 @@ void FullBackgroundWidget::onDesktopResized() //repaint(); update(); #endif + + PlasmaShellManager::getInstance()->setPos(this->windowHandle(),QPoint(0,0)); } void FullBackgroundWidget::laterInhibit(bool val) @@ -1345,6 +1346,10 @@ QList FullBackgroundWidget::GetSubWndIds() void FullBackgroundWidget::raiseOtherWnd() { //qDebug()<<"raiseOtherWnd----:"<setPosition(pos); + return true; } diff --git a/src/powermanager.cpp b/src/powermanager.cpp index aadcf02..faf67f8 100644 --- a/src/powermanager.cpp +++ b/src/powermanager.cpp @@ -216,7 +216,6 @@ void PowerManager::powerClicked(QListWidgetItem *item) lasttime = QTime::currentTime(); QString name = itemWidget(item)->objectName(); - printf("111111111111111111111111111 name = %s\n",name.toLatin1().data()); // if(name == lockWidget->objectName()) // lockWidgetClicked(); if(switchWidget && name == switchWidget->objectName()) diff --git a/src/screensaverwidget.cpp b/src/screensaverwidget.cpp index cfc41cc..36bd944 100644 --- a/src/screensaverwidget.cpp +++ b/src/screensaverwidget.cpp @@ -106,7 +106,7 @@ void ScreenSaverWidget::paintEvent(QPaintEvent *event) if(!screensaver->exists()) { QPainter painter(this); - painter.fillRect(geometry(), Qt::black); + painter.fillRect(0,0,this->width(),this->height(), Qt::black); } if(screensaver->mode == SAVER_IMAGE) { switch(screensaver->effect) { @@ -115,7 +115,7 @@ void ScreenSaverWidget::paintEvent(QPaintEvent *event) QPixmap pixmap(screensaver->path); pixmap.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); QPainter painter(this); - painter.drawPixmap(geometry(), pixmap); + painter.drawPixmap(0,0,this->width(),this->height(), pixmap); break; } case TRANSITION_FADE_IN_OUT: @@ -124,17 +124,15 @@ void ScreenSaverWidget::paintEvent(QPaintEvent *event) QPixmap pixmap1(screensaver->lastPath); pixmap1.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); painter.setOpacity(opacity); - painter.drawPixmap(geometry(), pixmap1); + painter.drawPixmap(0,0,this->width(),this->height(), pixmap1); QPixmap pixmap(screensaver->path); pixmap.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); painter.setOpacity(1 - opacity); - painter.drawPixmap(geometry(), pixmap); + painter.drawPixmap(0,0,this->width(),this->height(), pixmap); break; } } - - } return QWidget::paintEvent(event); } @@ -174,7 +172,7 @@ void ScreenSaverWidget::embedXScreensaver(const QString &path) void ScreenSaverWidget::resizeEvent(QResizeEvent *event) { if(m_screensaver){ - m_screensaver->setGeometry(this->geometry()); + m_screensaver->setGeometry(0,0,this->width(),this->height()); } } diff --git a/src/ukui-screensaver-dialog.cpp b/src/ukui-screensaver-dialog.cpp index e7ed780..2a5c0b7 100644 --- a/src/ukui-screensaver-dialog.cpp +++ b/src/ukui-screensaver-dialog.cpp @@ -227,7 +227,7 @@ int main(int argc, char *argv[]) #ifndef USE_INTEL if (QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") - window->showFullScreen(); + window->show(); else window->show(); window->activateWindow();