Commit 830348d7 authored by Zhiyi Zhang's avatar Zhiyi Zhang Committed by Alexandre Julliard

comctl32/button: Pass the destination rectangle to GetThemePartSize() when painting check boxes.

The destination rectangle may be smaller than that of theme parts, in which case, the draw size returned is adjusted to fit the destination rectangle. Without passing a destination rectangle to GetThemePartSize(), the function assumes that there is no limit for destination. This fixes winecfg check boxes missing the upper edge in 192 DPI. You may notice that the check box bitmap is slightly shrank and so the shape is a bit off. However, this is what happens on Windows as well when check box height is set to 8 DLUs. GetThemePartSize() without destination rectangles are also used in other controls, but manual tests showed that those controls don't shrink their theme background as check boxes do so they are left unchanged. Signed-off-by: 's avatarZhiyi Zhang <zzhang@codeweavers.com>
parent 869cbc4b
......@@ -2830,7 +2830,7 @@ static void CB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, in
GetThemeBackgroundContentRect(theme, hDC, part, state, &client_rect, &content_rect);
region = set_control_clipping(hDC, &client_rect);
if (FAILED(GetThemePartSize(theme, hDC, part, state, NULL, TS_DRAW, &box_size)))
if (FAILED(GetThemePartSize(theme, hDC, part, state, &content_rect, TS_DRAW, &box_size)))
{
box_size.cx = 12 * GetDpiForWindow(infoPtr->hwnd) / 96 + 1;
box_size.cy = box_size.cx;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment