fix(f双屏): fix bug

Description: 修复bug#131228

Log: bug#131228 【wayland】【控制面板】【显示器】【锁屏】扩展模式下锁屏,仅一个屏幕有锁屏壁纸(必现)
This commit is contained in:
liuyuanpeng 2022-12-30 14:24:47 +08:00
parent 9948ec5df5
commit c87324e7c8
6 changed files with 13 additions and 11 deletions

View File

@ -73,7 +73,6 @@ QString DisplayManager::getDisplayType()
void DisplayManager::switchToGreeter()
{
qDebug()<<"111111111111111111111111111111111111111111111111111111";
if(_displayType == "lightdm"){
QDBusMessage ret = dmSeatService->call("SwitchToGreeter");
handleDBusError(ret);

View File

@ -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<quint64> FullBackgroundWidget::GetSubWndIds()
void FullBackgroundWidget::raiseOtherWnd()
{
//qDebug()<<"raiseOtherWnd----:"<<m_listWndIds.size();
if(!QX11Info::isPlatformX11())
return ;
for (auto wndId : m_listWndIds) {
XRaiseWindow(QX11Info::display(), wndId);
XFlush(QX11Info::display());

View File

@ -93,6 +93,7 @@ bool PlasmaShellManager::setPos(QWindow *window, const QPoint &pos)
return false;
plasmaShellSurface->setPosition(pos);
return true;
}

View File

@ -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())

View File

@ -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());
}
}

View File

@ -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();