From a0245e5ad6494f019bda41e02efa294000911a09 Mon Sep 17 00:00:00 2001 From: zhangkun Date: Fri, 6 Dec 2024 12:00:57 +0800 Subject: [PATCH] fix: StyledBehindWindowBlur blur failure When the specified area is blurred, fallback to global blur is not supported pms: TASK-368711 --- src/dquickwindow.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/dquickwindow.cpp b/src/dquickwindow.cpp index 441267459..b84237b47 100644 --- a/src/dquickwindow.cpp +++ b/src/dquickwindow.cpp @@ -237,9 +237,11 @@ void DQuickWindowAttachedPrivate::_q_updateBlurAreaForWindow() } } + bool blurSuc = false; + if (blurPathList.isEmpty()) { - q->setWindowBlurAreaByWM(blurPathList); - q->setWindowBlurAreaByWM(blurAreaList); + blurSuc = q->setWindowBlurAreaByWM(blurPathList); + blurSuc = q->setWindowBlurAreaByWM(blurAreaList); } else { // convert to QPainterPath for (const DPlatformHandle::WMBlurArea &area : qAsConst(blurAreaList)) { @@ -248,8 +250,12 @@ void DQuickWindowAttachedPrivate::_q_updateBlurAreaForWindow() blurPathList << path; } - q->setWindowBlurAreaByWM(QVector{}); - q->setWindowBlurAreaByWM(blurPathList); + blurSuc = q->setWindowBlurAreaByWM(QVector{}); + blurSuc = q->setWindowBlurAreaByWM(blurPathList); + } + + if (!blurSuc) { + q->setEnableBlurWindow(true); } }