Daniel Jelinski : comctl32: Fix notifications and return value when collapsing already collapsed node.

Alexandre Julliard julliard at winehq.org
Tue Oct 16 15:27:46 CDT 2012


Module: wine
Branch: master
Commit: 0b6cf6e46a02085ae97f943f9c2ce2db9a0a0caf
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0b6cf6e46a02085ae97f943f9c2ce2db9a0a0caf

Author: Daniel Jelinski <djelinski1 at gmail.com>
Date:   Fri Oct 12 22:50:23 2012 +0200

comctl32: Fix notifications and return value when collapsing already collapsed node.

---

 dlls/comctl32/tests/treeview.c |    2 +-
 dlls/comctl32/treeview.c       |    6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index 1021648..c60ed4d 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -1395,7 +1395,7 @@ static void test_expandnotify(void)
 
     flush_sequences(sequences, NUM_MSG_SEQUENCES);
     ret = SendMessageA(hTree, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hRoot);
-    todo_wine expect(FALSE, ret);
+    expect(FALSE, ret);
     ok_sequence(sequences, PARENT_SEQ_INDEX, empty_seq, "no collapse notifications", FALSE);
 
     g_get_from_expand = TRUE;
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 3f6b457..3b2f747 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -3234,6 +3234,7 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
     RECT scrollRect;
     LONG scrollDist = 0;
     TREEVIEW_ITEM *nextItem = NULL, *tmpItem;
+    BOOL wasExpanded;
 
     TRACE("TVE_COLLAPSE %p %s\n", item, TREEVIEW_ItemName(item));
 
@@ -3246,9 +3247,10 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
     if (item->firstChild == NULL)
 	return FALSE;
 
+    wasExpanded = (item->state & TVIS_EXPANDED) != 0;
     item->state &= ~TVIS_EXPANDED;
 
-    if (bUser)
+    if (wasExpanded && bUser)
 	TREEVIEW_SendExpanded(infoPtr, item, action);
 
     bSetSelection = (infoPtr->selectedItem != NULL
@@ -3329,7 +3331,7 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
                              bSetFirstVisible ? item : infoPtr->firstVisible,
                              TRUE);
 
-    return TRUE;
+    return wasExpanded;
 }
 
 static BOOL




More information about the wine-cvs mailing list