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