comctl32: Do not send TVN_ITEMEXPANDING when expanding item with no children.
This commit is contained in:
parent
6067df7291
commit
9933f5e446
|
@ -1393,6 +1393,11 @@ static void test_expandnotify(void)
|
||||||
ret = SendMessageA(hTree, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hRoot);
|
ret = SendMessageA(hTree, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hRoot);
|
||||||
expect(TRUE, ret);
|
expect(TRUE, ret);
|
||||||
|
|
||||||
|
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||||
|
ret = SendMessageA(hTree, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hRoot);
|
||||||
|
todo_wine expect(FALSE, ret);
|
||||||
|
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_seq, "no collapse notifications", FALSE);
|
||||||
|
|
||||||
g_get_from_expand = TRUE;
|
g_get_from_expand = TRUE;
|
||||||
/* expand */
|
/* expand */
|
||||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||||
|
@ -1481,7 +1486,7 @@ static void test_expandnotify(void)
|
||||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||||
ret = SendMessageA(hTree, WM_KEYDOWN, VK_ADD, 0);
|
ret = SendMessageA(hTree, WM_KEYDOWN, VK_ADD, 0);
|
||||||
expect(FALSE, ret);
|
expect(FALSE, ret);
|
||||||
ok_sequence(sequences, PARENT_SEQ_INDEX, parent_expand_empty_kb_seq, "expand node with no children", TRUE);
|
ok_sequence(sequences, PARENT_SEQ_INDEX, parent_expand_empty_kb_seq, "expand node with no children", FALSE);
|
||||||
|
|
||||||
DestroyWindow(hTree);
|
DestroyWindow(hTree);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3237,10 +3237,10 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
|
||||||
|
|
||||||
TRACE("TVE_COLLAPSE %p %s\n", item, TREEVIEW_ItemName(item));
|
TRACE("TVE_COLLAPSE %p %s\n", item, TREEVIEW_ItemName(item));
|
||||||
|
|
||||||
if (!(item->state & TVIS_EXPANDED))
|
if (!TREEVIEW_HasChildren(infoPtr, item))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (bUser || !(item->state & TVIS_EXPANDEDONCE))
|
if (bUser)
|
||||||
TREEVIEW_SendExpanding(infoPtr, item, action);
|
TREEVIEW_SendExpanding(infoPtr, item, action);
|
||||||
|
|
||||||
if (item->firstChild == NULL)
|
if (item->firstChild == NULL)
|
||||||
|
@ -3248,7 +3248,7 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
|
||||||
|
|
||||||
item->state &= ~TVIS_EXPANDED;
|
item->state &= ~TVIS_EXPANDED;
|
||||||
|
|
||||||
if (bUser || !(item->state & TVIS_EXPANDEDONCE))
|
if (bUser)
|
||||||
TREEVIEW_SendExpanded(infoPtr, item, action);
|
TREEVIEW_SendExpanded(infoPtr, item, action);
|
||||||
|
|
||||||
bSetSelection = (infoPtr->selectedItem != NULL
|
bSetSelection = (infoPtr->selectedItem != NULL
|
||||||
|
@ -3344,8 +3344,8 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
|
||||||
|
|
||||||
TRACE("(%p, %p, partial=%d, %d\n", infoPtr, item, partial, user);
|
TRACE("(%p, %p, partial=%d, %d\n", infoPtr, item, partial, user);
|
||||||
|
|
||||||
if (item->state & TVIS_EXPANDED)
|
if (!TREEVIEW_HasChildren(infoPtr, item))
|
||||||
return TRUE;
|
return FALSE;
|
||||||
|
|
||||||
tmpItem = item; nextItem = NULL;
|
tmpItem = item; nextItem = NULL;
|
||||||
while (tmpItem)
|
while (tmpItem)
|
||||||
|
|
Loading…
Reference in New Issue