Commit 9f586534 authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

user32/listbox: Move the item data removal into a separate function.

parent ff1ebccd
......@@ -195,6 +195,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 class descriptor
*/
......@@ -1709,8 +1718,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. */
......@@ -1723,15 +1730,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 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment