[3/4] comctl32: fix notifications and return value when collapsing already collapsed node (rebased)
Daniel Jelinski
djelinski1 at gmail.com
Mon Oct 15 13:47:26 CDT 2012
-------------- next part --------------
From d0bd9233dc97d11407c27b82e93cc3a73c71ab22 Mon Sep 17 00:00:00 2001
From: Daniel Jelinski <djelinski1 at gmail.com>
Date: Fri, 12 Oct 2012 22:50:23 +0200
Subject: 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
--
1.7.5.4
More information about the wine-patches
mailing list