From 271509d6238c45fbd841b357141408fa71abdf7b Mon Sep 17 00:00:00 2001 From: chenbin Date: Thu, 3 Mar 2022 11:44:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9wayland=E4=B8=8B?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=8F=E9=AB=98=E6=95=88=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E9=AB=98=E5=BA=A6=E8=AE=A1=E7=AE=97=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit wayland下任务栏高度计算有些误差,导致改变任务栏位置之后,应用窗口最大化和分屏之后与之间任务栏有间隙 Log: 修复wayland下窗口顶端与任务栏有间距的问题 Bug: https://pms.uniontech.com/bug-view-113189.html Influence: wayland任务栏与应用窗口之间的间距 Change-Id: I80d71eb2caf891c5b519ded3d6fd3578054716f5 --- frame/util/multiscreenworker.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/frame/util/multiscreenworker.cpp b/frame/util/multiscreenworker.cpp index 6e420e4a0..1275a0659 100644 --- a/frame/util/multiscreenworker.cpp +++ b/frame/util/multiscreenworker.cpp @@ -758,27 +758,27 @@ void MultiScreenWorker::onRequestNotifyWindowManager() switch (m_position) { case Position::Top: varList[0] = 1; - varList[1] = (dockGeometry.height() + WINDOWMARGIN * 2) * ratio; - varList[2] = dockGeometry.x() * ratio; - varList[3] = (dockGeometry.x() + dockGeometry.width()) * ratio; + varList[1] = dockGeometry.y() + dockGeometry.height() + WINDOWMARGIN * ratio; + varList[2] = dockGeometry.x(); + varList[3] = dockGeometry.x() + dockGeometry.width(); break; case Position::Bottom: varList[0] = 3; - varList[1] = (dockGeometry.height() + WINDOWMARGIN * 2) * ratio; - varList[2] = dockGeometry.x() * ratio; - varList[3] = (dockGeometry.x() + dockGeometry.width()) * ratio; + varList[1] = DIS_INS->screenRawHeight() - dockGeometry.y() + WINDOWMARGIN * ratio; + varList[2] = dockGeometry.x(); + varList[3] = dockGeometry.x() + dockGeometry.width(); break; case Position::Left: varList[0] = 0; - varList[1] = (dockGeometry.width() + WINDOWMARGIN * 2) * ratio; - varList[2] = dockGeometry.x() * ratio; - varList[3] = dockGeometry.height() * ratio; + varList[1] = dockGeometry.x() + dockGeometry.width() + WINDOWMARGIN * ratio; + varList[2] = dockGeometry.y(); + varList[3] = dockGeometry.y() + dockGeometry.height(); break; case Position::Right: varList[0] = 2; - varList[1] = (dockGeometry.width() + WINDOWMARGIN * 2) * ratio; - varList[2] = dockGeometry.x() * ratio; - varList[3] = dockGeometry.height() * ratio; + varList[1] = DIS_INS->screenRawWidth() - dockGeometry.x() + WINDOWMARGIN * ratio; + varList[2] = dockGeometry.y(); + varList[3] = dockGeometry.y() + dockGeometry.height(); break; }