rem: if (item->flags.selected) {
add: if (item->selected) {
context: WMRemoveListItem(WMList *lPtr, int row){    WMLIstItem *item;    int topItem = lPtr->topItem;    int selNotify = 0;    CHECK_CLASS(lPtr, WC_List);    if (row < 0 || row >= WMGetArrayItemCount(lPtr->items))        return 0;    item = WMGetFromArray(lPtr->items, row);    if (item->flags.selected) {        WMRemoveFromArray(lPtr->selectedItems, item);        //WMUnselectListItem(lPtr, row);        selNotify = 1;    }    //if (lPtr->selectedItem == row) {    //    lPtr->selectedItem = -1;    //    selNotify = 1;    //} else if (lPtr->selectedItem > row) {    //    lPtr->selectedItem--;    //}    if (row <= lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll)        lPtr->topItem--;    if (lPtr->topItem < 0)        lPtr->topItem = 0;    WMDeleteFromArray(lPtr->items, row);    if (!lPtr->idleID) {        lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);    }    if (lPtr->topItem != topItem) {        WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);    }    if (selNotify) {        WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL);    }    return 1;}