From 0a35f5b5e0e99f9f4d765c2795e380540c5ea733 Mon Sep 17 00:00:00 2001 From: donghualin Date: Wed, 15 Jun 2022 15:16:14 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=97=B6=E5=B0=9A?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=B8=8B=E5=88=86=E5=89=B2=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=92=8C=E6=8F=92=E4=BB=B6=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原来调用的是dtk的setMaskPath方法,现换成Qt的setMask方法,实现更彻底 Log: Influence: 任务栏-时尚模式下查看左右区域的显示 Bug: https://pms.uniontech.com/bug-view-134527.html Change-Id: Ibd5e7db440ae359a59c73e77f5f08951f8571e7a --- frame/window/mainwindow.cpp | 11 +++++++++-- frame/window/mainwindow.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index 15a94e7db..21453c119 100755 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -259,7 +259,7 @@ void MainWindow::resizeEvent(QResizeEvent *event) // 任务栏大小、位置、模式改变都会触发resize,发射大小改变信号,供依赖项目更新位置 Q_EMIT panelGeometryChanged(); - setMaskPath(m_mainPanel->areaPath()); + updateMaskArea(); m_mainPanel->updatePluginsLayout(); m_shadowMaskOptimizeTimer->start(); @@ -367,6 +367,13 @@ void MainWindow::resizeDockIcon() m_mainPanel->resizeDockIcon(); } +void MainWindow::updateMaskArea() +{ + QPainterPath path = m_mainPanel->areaPath(); + QPolygon polgon = path.toFillPolygon().toPolygon(); + setMask(polgon); +} + /** * @brief MainWindow::adjustShadowMask 更新任务栏的圆角大小(时尚模式下才有圆角效果) */ @@ -393,7 +400,7 @@ void MainWindow::adjustShadowMask() m_platformWindowHandle.setWindowRadius(radius); m_mainPanel->updatePluginsLayout(); - setMaskPath(m_mainPanel->areaPath()); + updateMaskArea(); } void MainWindow::onDbusNameOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner) diff --git a/frame/window/mainwindow.h b/frame/window/mainwindow.h index 7bd249c72..40e4d9a88 100644 --- a/frame/window/mainwindow.h +++ b/frame/window/mainwindow.h @@ -189,6 +189,7 @@ private: void initConnections(); void resizeDockIcon(); + void updateMaskArea(); signals: void panelGeometryChanged();