mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
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:
parent
ca1fde6271
commit
0fb8fbc539
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user