Dmitry Timoshkov : comctl32/listview: Fix changed notification mask for inserted items.

Alexandre Julliard julliard at winehq.org
Tue Feb 22 16:06:49 CST 2022


Module: wine
Branch: master
Commit: f1a3586f10135ce58e3343df8800b533698fe65b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f1a3586f10135ce58e3343df8800b533698fe65b

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue Feb 22 11:06:28 2022 +0300

comctl32/listview: Fix changed notification mask for inserted items.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/comctl32/listview.c       | 2 +-
 dlls/comctl32/tests/listview.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index d8abd8236eb..2cb96367551 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -4258,7 +4258,7 @@ static BOOL set_main_item(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVItem, BOOL
         nmlv.uNewState = (item.state & ~stateMask) | (lpLVItem->state & stateMask);
         nmlv.uOldState = item.state;
     }
-    nmlv.uChanged = uChanged ? uChanged : lpLVItem->mask;
+    nmlv.uChanged = isNew ? LVIF_STATE : (uChanged ? uChanged : lpLVItem->mask);
     nmlv.lParam = item.lParam;
 
     /* Send change notification if the item is not being inserted, or inserted (selected|focused),
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 92e11685331..3810cd8f4bc 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -6023,7 +6023,7 @@ static void test_LVM_INSERTITEM(void)
         if ((insert_item[i].mask & LVIF_STATE) && (insert_item[i].state & (LVIS_FOCUSED | LVIS_SELECTED)))
         {
             sprintf(buf, "%d: insert focused", i);
-            ok_sequence(sequences, PARENT_SEQ_INDEX, parent_insert_focused0_seq, buf, insert_item[i].mask != LVIF_STATE);
+            ok_sequence(sequences, PARENT_SEQ_INDEX, parent_insert_focused0_seq, buf, FALSE);
         }
         else
         {
@@ -6100,7 +6100,7 @@ static void test_insertitem(void)
     item.lParam = 0xdeadbeef;
     ret = SendMessageA(hwnd, LVM_INSERTITEMA, 0, (LPARAM)&item);
     ok(ret == 3, "got %d\n", ret);
-    ok_sequence(sequences, PARENT_SEQ_INDEX, parent_insert_selected_seq, "insert selected", TRUE);
+    ok_sequence(sequences, PARENT_SEQ_INDEX, parent_insert_selected_seq, "insert selected", FALSE);
 
     /* insert item 4 */
     item.mask = LVIF_PARAM;




More information about the wine-cvs mailing list