summaryrefslogtreecommitdiff
path: root/alf
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-06-10 23:46:59 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-06-10 23:46:59 +0200
commit1e9adbd19cf7702ac14796c4ce1984af15842f73 (patch)
tree4991cf51e0704ab2f386f3d442e91235d6bc4dd6 /alf
parent7829efa0bd8f41b61a1c939940244503baa815b5 (diff)
add checkbox transparency hack for winxp
Diffstat (limited to 'alf')
-rw-r--r--alf/alftoplevel.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/alf/alftoplevel.cpp b/alf/alftoplevel.cpp
index 5cdd686..29e43cb 100644
--- a/alf/alftoplevel.cpp
+++ b/alf/alftoplevel.cpp
@@ -322,6 +322,24 @@ ALF_Toplevel_DefWindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
if (ret) {
return ret;
} else {
+ if (ALF_Compat_IsComCtlV6() && !ALF_Compat_IsVista()) {
+ // HACK! transparent checkbox background for comctl v6 on XP
+ // broken on every other version of windows, but not needed for Vista
+
+ WCHAR c[32] = {0};
+ GetClassNameW((HWND)lparam, c, sizeof(c)/sizeof(c[0]));
+
+ if (!lstrcmpW(c, WC_BUTTONW)) {
+ RECT rcClient;
+ GetClientRect((HWND)lparam, &rcClient);
+
+ ALF_Compat_DrawThemeParentBackground((HWND)lparam, (HDC)wparam, &rcClient);
+ SetBkColor((HDC)wparam, GetSysColor(COLOR_BTNFACE));
+ SetTextColor((HDC)wparam, GetSysColor(COLOR_BTNTEXT));
+ return (LRESULT)GetStockObject(HOLLOW_BRUSH);
+ }
+ }
+
SetBkColor((HDC)wparam, GetSysColor(COLOR_BTNFACE));
SetTextColor((HDC)wparam, GetSysColor(COLOR_BTNTEXT));
return (LRESULT)GetSysColorBrush(COLOR_BTNFACE);