From 0cedc474f38dca024f77ebf1d7ac5bf22c19744a Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周五, 22 12月 2023 20:51:50 +0800 Subject: [PATCH] fix compile error on win --- src/core/contexts/win32windowcontext.cpp | 31 ++++++++++++------------------- 1 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp index af84241..bcf91f3 100644 --- a/src/core/contexts/win32windowcontext.cpp +++ b/src/core/contexts/win32windowcontext.cpp @@ -789,8 +789,10 @@ bool Win32WindowContext::windowAttributeChanged(const QString &key, const QVariant &attribute, const QVariant &oldAttribute) { - const auto hwnd = reinterpret_cast<HWND>(window->winId()); + const auto hwnd = reinterpret_cast<HWND>(m_windowHandle->winId()); const DynamicApis &apis = DynamicApis::instance(); + static constexpr const MARGINS extendMargins = {-1, -1, -1, -1}; + static const auto defaultMargins = isWin10OrGreater() ? MARGINS{0, 0, 0, 0} : MARGINS{1, 1, 1, 1}; if (key == QStringLiteral("mica")) { if (!isWin11OrGreater()) { return false; @@ -798,8 +800,7 @@ if (attribute.toBool()) { // We need to extend the window frame into the whole client area to be able // to see the blurred window background. - static constexpr const MARGINS margins = {-1, -1, -1, -1}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &extendMargins); if (isWin1122H2OrGreater()) { // Use official DWM API to enable Mica, available since Windows 11 22H2 // (10.0.22621). @@ -821,8 +822,7 @@ const BOOL enable = FALSE; apis.pDwmSetWindowAttribute(hwnd, _DWMWA_MICA_EFFECT, &enable, sizeof(enable)); } - static constexpr const MARGINS margins = {0, 0, 0, 0}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &defaultMargins); } return true; } else if (key == QStringLiteral("mica-alt")) { @@ -832,8 +832,7 @@ if (attribute.toBool()) { // We need to extend the window frame into the whole client area to be able // to see the blurred window background. - static constexpr const MARGINS margins = {-1, -1, -1, -1}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &extendMargins); // Use official DWM API to enable Mica Alt, available since Windows 11 22H2 // (10.0.22621). const _DWM_SYSTEMBACKDROP_TYPE backdropType = _DWMSBT_TABBEDWINDOW; @@ -843,8 +842,7 @@ const _DWM_SYSTEMBACKDROP_TYPE backdropType = _DWMSBT_AUTO; apis.pDwmSetWindowAttribute(hwnd, _DWMWA_SYSTEMBACKDROP_TYPE, &backdropType, sizeof(backdropType)); - static constexpr const MARGINS margins = {0, 0, 0, 0}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &defaultMargins); } return true; } else if (key == QStringLiteral("acrylic-material")) { @@ -854,8 +852,7 @@ if (attribute.userType() == QMetaType::QColor) { // We need to extend the window frame into the whole client area to be able // to see the blurred window background. - static constexpr const MARGINS margins = {-1, -1, -1, -1}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &extendMargins); if (isWin11OrGreater()) { const _DWM_SYSTEMBACKDROP_TYPE backdropType = _DWMSBT_TRANSIENTWINDOW; apis.pDwmSetWindowAttribute(hwnd, _DWMWA_SYSTEMBACKDROP_TYPE, &backdropType, @@ -891,16 +888,14 @@ wcad.cbData = sizeof(policy); apis.pSetWindowCompositionAttribute(hwnd, &wcad); } - static constexpr const MARGINS margins = {0, 0, 0, 0}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &defaultMargins); } return true; } else if (key == QStringLiteral("dwm-blur")) { if (attribute.toBool()) { // We need to extend the window frame into the whole client area to be able // to see the blurred window background. - static constexpr const MARGINS margins = {-1, -1, -1, -1}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &extendMargins); if (isWin8OrGreater()) { ACCENT_POLICY policy{}; policy.dwAccentState = ACCENT_ENABLE_BLURBEHIND; @@ -913,8 +908,7 @@ } else { DWM_BLURBEHIND bb{}; bb.fEnable = TRUE; - bb.fTransitionOnMaximized = TRUE; - bb.dwFlags = DWM_BB_ENABLE | DWM_BB_TRANSITIONONMAXIMIZED; + bb.dwFlags = DWM_BB_ENABLE; apis.pDwmEnableBlurBehindWindow(hwnd, &bb); } } else { @@ -933,8 +927,7 @@ bb.dwFlags = DWM_BB_ENABLE; apis.pDwmEnableBlurBehindWindow(hwnd, &bb); } - static constexpr const MARGINS margins = {0, 0, 0, 0}; - apis.pDwmExtendFrameIntoClientArea(hwnd, &margins); + apis.pDwmExtendFrameIntoClientArea(hwnd, &defaultMargins); } return true; } -- Gitblit v1.9.1