From b5353615668a8b3c1e26adead7cb9d5ad4abcd9a Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周五, 22 12月 2023 23:21:07 +0800 Subject: [PATCH] minor tweaks --- src/core/contexts/win32windowcontext.cpp | 29 ++++++++++++++++++----------- 1 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp index 24dfcd9..ede9504 100644 --- a/src/core/contexts/win32windowcontext.cpp +++ b/src/core/contexts/win32windowcontext.cpp @@ -725,17 +725,7 @@ #if !QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER) { auto style = ::GetWindowLongPtrW(hWnd, GWL_STYLE); - ::SetWindowLongPtrW(hWnd, GWL_STYLE, style | WS_THICKFRAME | WS_CAPTION); - } -#endif - -#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0) - for (const auto attr : { - _DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1, - _DWMWA_USE_IMMERSIVE_DARK_MODE, - }) { - const BOOL enable = TRUE; - DynamicApis::instance().pDwmSetWindowAttribute(hWnd, attr, &enable, sizeof(enable)); + ::SetWindowLongPtrW(hWnd, GWL_STYLE, (style | WS_THICKFRAME) & (~WS_CAPTION)); } #endif @@ -943,6 +933,23 @@ apis.pDwmExtendFrameIntoClientArea(hwnd, &defaultMargins); } return true; + } else if (key == QStringLiteral("dark-mode")) { + if (!isWin101809OrGreater()) { + return false; + } + BOOL enable = attribute.toBool(); + for (const auto attr : { + _DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1, + _DWMWA_USE_IMMERSIVE_DARK_MODE, + }) { + apis.pDwmSetWindowAttribute(hwnd, attr, &enable, sizeof(enable)); + } + WINDOWCOMPOSITIONATTRIBDATA wcad{}; + wcad.Attrib = WCA_USEDARKMODECOLORS; + wcad.pvData = &enable; + wcad.cbData = sizeof(enable); + apis.pSetWindowCompositionAttribute(hwnd, &wcad); + return true; } return false; } -- Gitblit v1.9.1