comctl32/listbox: Move the item data removal into a separate function.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bd2cc1342b
commit
e98d4b4502
|
@ -200,6 +200,15 @@ static void insert_item_data(LB_DESCR *descr, UINT index, WCHAR *str, ULONG_PTR
|
|||
item->selected = FALSE;
|
||||
}
|
||||
|
||||
static void remove_item_data(LB_DESCR *descr, UINT index)
|
||||
{
|
||||
LB_ITEMDATA *item;
|
||||
|
||||
item = descr->items + index;
|
||||
if (index < descr->nb_items)
|
||||
memmove(item, item + 1, (descr->nb_items - index) * sizeof(LB_ITEMDATA));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* LISTBOX_GetCurrentPageSize
|
||||
*
|
||||
|
@ -1699,8 +1708,6 @@ static void LISTBOX_DeleteItem( LB_DESCR *descr, INT index )
|
|||
*/
|
||||
static LRESULT LISTBOX_RemoveItem( LB_DESCR *descr, INT index )
|
||||
{
|
||||
LB_ITEMDATA *item;
|
||||
|
||||
if ((index < 0) || (index >= descr->nb_items)) return LB_ERR;
|
||||
|
||||
/* We need to invalidate the original rect instead of the updated one. */
|
||||
|
@ -1713,15 +1720,9 @@ static LRESULT LISTBOX_RemoveItem( LB_DESCR *descr, INT index )
|
|||
}
|
||||
descr->nb_items--;
|
||||
LISTBOX_DeleteItem( descr, index );
|
||||
remove_item_data(descr, index);
|
||||
|
||||
/* Remove the item */
|
||||
|
||||
item = &descr->items[index];
|
||||
if (index < descr->nb_items)
|
||||
RtlMoveMemory( item, item + 1,
|
||||
(descr->nb_items - index) * sizeof(LB_ITEMDATA) );
|
||||
if (descr->anchor_item == descr->nb_items) descr->anchor_item--;
|
||||
|
||||
resize_storage(descr, descr->nb_items);
|
||||
|
||||
/* Repaint the items */
|
||||
|
|
Loading…
Reference in New Issue