[PATCH 2/6] comctl32/treeview: Draw parent background before drawing control parts.
Fix residual glyphs on background when drawing treeview buttons with themes that contains transparent button glyphs. Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> --- dlls/comctl32/treeview.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 98cf5489f2b..f4a387dd0d2 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -2901,6 +2901,7 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, HDC hdc, const RECT *rc) HWND hwnd = infoPtr->hwnd; RECT rect = *rc; TREEVIEW_ITEM *item; + HTHEME theme; if (infoPtr->clientHeight == 0 || infoPtr->clientWidth == 0) { @@ -2917,6 +2918,12 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, HDC hdc, const RECT *rc) return; } + if (infoPtr->dwStyle & TVS_HASBUTTONS && (theme = GetWindowTheme(infoPtr->hwnd))) + { + if (IsThemeBackgroundPartiallyTransparent(theme, TVP_GLYPH, 0)) + DrawThemeParentBackground(infoPtr->hwnd, hdc, NULL); + } + for (item = infoPtr->root->firstChild; item != NULL; item = TREEVIEW_GetNextListItem(infoPtr, item)) -- 2.30.2
participants (1)
-
Zhiyi Zhang