Zhiyi Zhang : comctl32/button: Simplify focus rectangle calculation for drawing themed split buttons.
Alexandre Julliard
julliard at winehq.org
Thu Nov 4 17:04:21 CDT 2021
Module: wine
Branch: master
Commit: 5182c46cbe6015ebf3bb9330c7f1f4263cf88015
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5182c46cbe6015ebf3bb9330c7f1f4263cf88015
Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date: Thu Nov 4 14:52:03 2021 +0800
comctl32/button: Simplify focus rectangle calculation for drawing themed split buttons.
Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/comctl32/button.c | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/dlls/comctl32/button.c b/dlls/comctl32/button.c
index 00f42322399..2738a4caee5 100644
--- a/dlls/comctl32/button.c
+++ b/dlls/comctl32/button.c
@@ -2861,7 +2861,7 @@ static void GB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, in
static void SB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, int state, UINT dtFlags, BOOL focused)
{
- RECT rc, content_rect, push_rect, dropdown_rect;
+ RECT rc, content_rect, push_rect, dropdown_rect, focus_rect;
NMCUSTOMDRAW nmcd;
LRESULT cdrf;
HWND parent;
@@ -2889,6 +2889,7 @@ static void SB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, in
{
push_rect = rc;
DrawThemeBackground(theme, hDC, BP_PUSHBUTTON, state, &rc, NULL);
+ GetThemeBackgroundContentRect(theme, hDC, BP_PUSHBUTTON, state, &push_rect, &focus_rect);
}
else
{
@@ -2909,6 +2910,7 @@ static void SB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, in
/* The content rect should be the content area of the push button */
GetThemeBackgroundContentRect(theme, hDC, BP_PUSHBUTTON, state, &push_rect, &content_rect);
+ focus_rect = content_rect;
}
if (cdrf & CDRF_NOTIFYPOSTERASE)
@@ -2951,18 +2953,7 @@ static void SB_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, in
}
if (cdrf & CDRF_SKIPPOSTPAINT) return;
- if (focused)
- {
- MARGINS margins;
-
- GetThemeMargins(theme, hDC, BP_PUSHBUTTON, state, TMT_CONTENTMARGINS, NULL, &margins);
-
- push_rect.left += margins.cxLeftWidth;
- push_rect.top += margins.cyTopHeight;
- push_rect.right -= margins.cxRightWidth;
- push_rect.bottom -= margins.cyBottomHeight;
- DrawFocusRect(hDC, &push_rect);
- }
+ if (focused) DrawFocusRect(hDC, &focus_rect);
}
static void CL_ThemedPaint(HTHEME theme, const BUTTON_INFO *infoPtr, HDC hDC, int state, UINT dtFlags, BOOL focused)
More information about the wine-cvs
mailing list