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@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zhiyi Zhang 2021-06-22 16:20:56 +08:00 committed by Alexandre Julliard
parent f8671aaedd
commit 02bfec6419
1 changed files with 7 additions and 0 deletions

View File

@ -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))