Module: wine Branch: master Commit: ee7ca802f4839fab9efd1759a762a9839d931a9b URL: http://source.winehq.org/git/wine.git/?a=commit;h=ee7ca802f4839fab9efd1759a7...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Wed Jul 15 21:21:26 2009 +0900
comctl32: Do not redraw treeview in TVM_INSERTITEM handler if bRedraw is not set, trigger the redraw on WM_SETREDRAW/TRUE.
---
dlls/comctl32/treeview.c | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 8bea973..fd20cef 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -1367,6 +1367,8 @@ TREEVIEW_InsertItemT(TREEVIEW_INFO *infoPtr, const TVINSERTSTRUCTW *ptdi, BOOL i
TREEVIEW_VerifyTree(infoPtr);
+ if (!infoPtr->bRedraw) return (LRESULT)newItem; + if (parentItem == infoPtr->root || (ISVISIBLE(parentItem) && parentItem->state & TVIS_EXPANDED)) { @@ -1564,6 +1566,7 @@ TREEVIEW_DeleteItem(TREEVIEW_INFO *infoPtr, HTREEITEM wineItem)
TREEVIEW_VerifyTree(infoPtr);
+ if (!infoPtr->bRedraw) return TRUE;
if (visible) { @@ -1586,12 +1589,15 @@ TREEVIEW_DeleteItem(TREEVIEW_INFO *infoPtr, HTREEITEM wineItem) static LRESULT TREEVIEW_SetRedraw(TREEVIEW_INFO* infoPtr, WPARAM wParam) { - if(wParam) - infoPtr->bRedraw = TRUE; - else - infoPtr->bRedraw = FALSE; + infoPtr->bRedraw = wParam ? TRUE : FALSE;
- return 0; + if (infoPtr->bRedraw) + { + TREEVIEW_UpdateSubTree(infoPtr, infoPtr->root); + TREEVIEW_UpdateScrollBars(infoPtr); + TREEVIEW_Invalidate(infoPtr, NULL); + } + return 0; }
static LRESULT