fix: 修复缩放导致任务栏显示不全的问题

之前计算缩放时计算了区域的左上角,实际上Display服务获取的桌面大小的topLeft坐标是对的,其size需计算要缩放

Log: 修复缩放导致任务栏显示不全的问题
Change-Id: Id7488735831231e698ad2ead51521fa980b4bafc
Reviewed-on: http://gerrit.uniontech.com/c/dde-dock/+/1410
Reviewed-by: fanpengcheng <fanpengcheng@uniontech.com>
Tested-by: fanpengcheng <fanpengcheng@uniontech.com>
This commit is contained in:
Fan PengCheng 2020-08-06 23:33:18 +08:00 committed by fanpengcheng
parent ca1fde6271
commit 0fb8fbc539

View File

@ -1251,29 +1251,29 @@ QRect MultiScreenWorker::getDockShowGeometry(const QString &screenName, const Po
switch (static_cast<Position>(pos)) {
case Top: {
rect.setX(inter->x() / scale + WINDOWMARGIN);
rect.setY(inter->y() / scale + WINDOWMARGIN);
rect.setX(inter->x() + WINDOWMARGIN);
rect.setY(inter->y() + WINDOWMARGIN);
rect.setWidth(inter->w() / scale - 2 * WINDOWMARGIN);
rect.setHeight(dockSize);
}
break;
case Bottom: {
rect.setX(inter->x() / scale + WINDOWMARGIN);
rect.setY(inter->y() / scale + inter->h() / scale - WINDOWMARGIN - dockSize);
rect.setX(inter->x() + WINDOWMARGIN);
rect.setY(inter->y() + inter->h() / scale - WINDOWMARGIN - dockSize);
rect.setWidth(inter->w() / scale - 2 * WINDOWMARGIN);
rect.setHeight(dockSize);
}
break;
case Left: {
rect.setX(inter->x() / scale + WINDOWMARGIN);
rect.setY(inter->y() / scale + WINDOWMARGIN);
rect.setX(inter->x() + WINDOWMARGIN);
rect.setY(inter->y() + WINDOWMARGIN);
rect.setWidth(dockSize);
rect.setHeight(inter->h() / scale - 2 * WINDOWMARGIN);
}
break;
case Right: {
rect.setX(inter->x() / scale + inter->w() / scale - WINDOWMARGIN - dockSize);
rect.setY(inter->y() / scale + WINDOWMARGIN);
rect.setX(inter->x() + inter->w() / scale - WINDOWMARGIN - dockSize);
rect.setY(inter->y() + WINDOWMARGIN);
rect.setWidth(dockSize);
rect.setHeight(inter->h() / scale - 2 * WINDOWMARGIN);
}
@ -1283,7 +1283,7 @@ QRect MultiScreenWorker::getDockShowGeometry(const QString &screenName, const Po
}
#ifdef QT_DEBUG
// qDebug() << rect;
qDebug() << rect;
#endif
return rect;
@ -1300,29 +1300,29 @@ QRect MultiScreenWorker::getDockHideGeometry(const QString &screenName, const Po
switch (static_cast<Position>(pos)) {
case Top: {
rect.setX(inter->x() / scale + margin);
rect.setY(inter->y() / scale);
rect.setX(inter->x() + margin);
rect.setY(inter->y());
rect.setWidth(inter->w() / scale - 2 * margin);
rect.setHeight(0);
}
break;
case Bottom: {
rect.setX(inter->x() / scale + margin);
rect.setY(inter->y() / scale + inter->h() / scale);
rect.setX(inter->x() + margin);
rect.setY(inter->y() + inter->h() / scale);
rect.setWidth(inter->w() / scale - 2 * margin);
rect.setHeight(0);
}
break;
case Left: {
rect.setX(inter->x() / scale);
rect.setY(inter->y() / scale + margin);
rect.setX(inter->x());
rect.setY(inter->y() + margin);
rect.setWidth(0);
rect.setHeight(inter->h() / scale - 2 * margin);
}
break;
case Right: {
rect.setX(inter->x() / scale + inter->w() / scale);
rect.setY(inter->y() / scale + margin);
rect.setX(inter->x() + inter->w() / scale);
rect.setY(inter->y() + margin);
rect.setWidth(0);
rect.setHeight(inter->h() / scale - 2 * margin);
}
@ -1332,7 +1332,7 @@ QRect MultiScreenWorker::getDockHideGeometry(const QString &screenName, const Po
}
#ifdef QT_DEBUG
// qDebug() << rect;
qDebug() << rect;
#endif
return rect;