From e331fb1feda8891baba2a2dc1caeed67834d9d93 Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周五, 22 12月 2023 23:47:22 +0800
Subject: [PATCH] improve dark mode on win

---
 src/core/contexts/win32windowcontext.cpp |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp
index ede9504..19f1864 100644
--- a/src/core/contexts/win32windowcontext.cpp
+++ b/src/core/contexts/win32windowcontext.cpp
@@ -937,18 +937,24 @@
             if (!isWin101809OrGreater()) {
                 return false;
             }
+
             BOOL enable = attribute.toBool();
+
+            if (isWin101903OrGreater()) {
+                apis.pSetPreferredAppMode(enable ? PAM_AUTO : PAM_DEFAULT);
+            } else {
+                apis.pAllowDarkModeForApp(enable);
+            }
+
             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);
+
+            apis.pFlushMenuThemes();
+
             return true;
         }
         return false;

--
Gitblit v1.9.1