Nikolay Sivov : comctl32/treeview: Store item state supplied from TVN_GETDISPINFO handler.
Alexandre Julliard
julliard at winehq.org
Mon May 16 11:36:48 CDT 2011
Module: wine
Branch: master
Commit: f9b14fda026fe71cb055a20833069e1c16e328ba
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f9b14fda026fe71cb055a20833069e1c16e328ba
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sat May 14 15:18:49 2011 +0400
comctl32/treeview: Store item state supplied from TVN_GETDISPINFO handler.
---
dlls/comctl32/tests/treeview.c | 3 ++-
dlls/comctl32/treeview.c | 6 ++++++
2 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index 7dd9aac..002d69c 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -468,10 +468,11 @@ static void test_callback(void)
tvi.hItem = hRoot;
tvi.mask = TVIF_IMAGE;
tvi.state = INDEXTOSTATEIMAGEMASK(1);
+ tvi.stateMask = 0;
ret = TreeView_GetItem(hTree, &tvi);
expect(TRUE, ret);
/* handler sets TVIS_SELECTED as well */
- todo_wine ok(tvi.state == (TVIS_FOCUSED | TVIS_SELECTED | INDEXTOSTATEIMAGEMASK(2) | INDEXTOOVERLAYMASK(3)), "got 0x%x\n", tvi.state);
+ ok(tvi.state == (TVIS_FOCUSED | TVIS_SELECTED | INDEXTOSTATEIMAGEMASK(2) | INDEXTOOVERLAYMASK(3)), "got 0x%x\n", tvi.state);
g_disp_set_stateimage = FALSE;
ok_sequence(sequences, PARENT_SEQ_INDEX, parent_get_dispinfo_seq,
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 84c2c8b..453985a 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -815,6 +815,12 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
if (mask & TVIF_CHILDREN)
wineItem->cChildren = callback.item.cChildren;
+ if (callback.item.mask & TVIF_STATE)
+ {
+ wineItem->state &= ~callback.item.stateMask;
+ wineItem->state |= (callback.item.state & callback.item.stateMask);
+ }
+
/* These members are now permanently set. */
if (callback.item.mask & TVIF_DI_SETITEM)
wineItem->callbackMask &= ~callback.item.mask;
More information about the wine-cvs
mailing list