From 0cecae2dd16e4073b81bfbc72a2140e6f6feccbd Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:58:30 +0900 Subject: [PATCH] better registry function --- src/backend/gdi.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 5c4febe..e985c8b 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -11,12 +11,22 @@ typedef struct userdata { static void detect_darktheme(MwLL handle){ DWORD dw; DWORD sz = sizeof(dw); + int err, t; + HKEY hkey; + DWORD type; - if(RegGetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", "AppsUseLightTheme", RRF_RT_REG_DWORD, NULL, &dw, &sz) == ERROR_SUCCESS){ - int t = dw ? 0 : 1; + err = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_QUERY_VALUE, &hkey); + if(err != ERROR_SUCCESS) return; - MwLLDispatch(handle, dark_theme, &t); + err = RegQueryValueEx(hkey, "AppsUseLightTheme", NULL, &type, (PBYTE)&dw, &sz); + if(err != ERROR_SUCCESS || type != REG_DWORD){ + RegCloseKey(hkey); + return; } + + t = dw ? 0 : 1; + + MwLLDispatch(handle, dark_theme, &t); } static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {