Send notifies after invalidating changed areas.
Don't use custom draw returned colors for control.
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 2a213fc..ef64759 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -657,8 +657,6 @@
(WPARAM)nmcd->hdr.idFrom,
(LPARAM)&nmcdhdr);
- infoPtr->clrText = nmcdhdr.clrText;
- infoPtr->clrBk = nmcdhdr.clrTextBk;
return (BOOL)retval;
}
@@ -4220,14 +4218,17 @@
TREEVIEW_EnsureVisible(infoPtr, infoPtr->selectedItem, FALSE);
+ if (prevSelect)
+ TREEVIEW_Invalidate(infoPtr, prevSelect);
+ if (newSelect)
+ TREEVIEW_Invalidate(infoPtr, newSelect);
+
TREEVIEW_SendTreeviewNotify(infoPtr,
TVN_SELCHANGEDW,
cause,
TVIF_HANDLE | TVIF_STATE | TVIF_PARAM,
prevSelect,
newSelect);
- TREEVIEW_Invalidate(infoPtr, prevSelect);
- TREEVIEW_Invalidate(infoPtr, newSelect);
break;
case TVGN_DROPHILITE:
@@ -5304,8 +5305,8 @@
TVC_UNKNOWN);
}
- TREEVIEW_SendSimpleNotify(infoPtr, NM_SETFOCUS);
TREEVIEW_Invalidate(infoPtr, infoPtr->selectedItem);
+ TREEVIEW_SendSimpleNotify(infoPtr, NM_SETFOCUS);
return 0;
}
@@ -5314,8 +5315,9 @@
{
TRACE("\n");
- TREEVIEW_SendSimpleNotify(infoPtr, NM_KILLFOCUS);
TREEVIEW_Invalidate(infoPtr, infoPtr->selectedItem);
+ UpdateWindow(infoPtr->hwnd);
+ TREEVIEW_SendSimpleNotify(infoPtr, NM_KILLFOCUS);
return 0;
}