Module: wine Branch: master Commit: f1a3586f10135ce58e3343df8800b533698fe65b URL: https://source.winehq.org/git/wine.git/?a=commit;h=f1a3586f10135ce58e3343df8...
Author: Dmitry Timoshkov dmitry@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;