From 0dbab63fa6e5abca02810beeb23d896ad1088a78 Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" Date: Sat, 19 Oct 2002 00:59:34 +0000 Subject: [PATCH] When deleting an item, remove selection, don't add it! --- dlls/comctl32/listview.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 6eac81d0f10..8737c54174c 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -4032,23 +4032,16 @@ static LRESULT LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem) TRACE("(nItem=%d)\n", nItem); + /* remove selection, and focus */ + item.state = 0; + item.stateMask = LVIS_SELECTED | LVIS_FOCUSED; + LISTVIEW_SetItemState(infoPtr, nItem, &item); - /* First, send LVN_DELETEITEM notification. */ + /* send LVN_DELETEITEM notification. */ ZeroMemory(&nmlv, sizeof (NMLISTVIEW)); nmlv.iItem = nItem; notify_listview(infoPtr, LVN_DELETEITEM, &nmlv); - if (nItem == infoPtr->nFocusedItem) - { - infoPtr->nFocusedItem = -1; - SetRectEmpty(&infoPtr->rcFocus); - } - - /* remove it from the selection range */ - item.state = LVIS_SELECTED; - item.stateMask = LVIS_SELECTED; - LISTVIEW_SetItemState(infoPtr,nItem,&item); - if (lStyle & LVS_OWNERDATA) { infoPtr->nItemCount--;