[PATCH 6/7] winecfg: Use OpenThemeDataForDpi() to create a theme handle not associated to a window.

Zhiyi Zhang zzhang at codeweavers.com
Wed Sep 1 01:38:03 CDT 2021


If a window is not passed to OpenThemeData(), OpenThemeData() assumes the DPI is 96 according to
tests. And GetThemePartSize() should select theme parts according to the DPI stored in theme
handles rather than using GDI device contexts. Thus, OpenThemeDataForDpi() should be used in place
of OpenThemeData() when DPI is not 96 and theme handles shouldn't be associated with a window.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 programs/winecfg/theme.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/programs/winecfg/theme.c b/programs/winecfg/theme.c
index e204a911516..b3a3eeed3ba 100644
--- a/programs/winecfg/theme.c
+++ b/programs/winecfg/theme.c
@@ -1090,7 +1090,7 @@ static void on_draw_item(HWND hDlg, WPARAM wParam, LPARAM lParam)
         HTHEME theme;
         RECT buttonrect;
 
-        theme = OpenThemeData(NULL, WC_BUTTONW);
+        theme = OpenThemeDataForDpi(NULL, WC_BUTTONW, GetDpiForWindow(hDlg));
 
         if (theme) {
             MARGINS margins;
-- 
2.30.2




More information about the wine-devel mailing list