add: lPtr->flags.allowEmptySelection = foo;
context: WMSelectListItem(WMList *lPtr, int row){    WMListItem *item;    if (row >= WMGetArrayItemCount(lPtr->items))        return;    if (row < 0) {        /* row = -1 will deselects all for backward compatibility.         * will be removed later. -Dan */        WMUnselectAllListItems(lPtr);        return;    }    item = WMGetFromArray(lPtr->items, row);    if (item->selected)        return;           /* Return if already selected */    if (!lPtr->flags.allowMultipleSelection) {        /* unselect previous selected items */        WMUnselectAllListItems(lPtr);    }    /* select item */    item->selected = 1;    WMAddToArray(lPtr->selectedItems, item);    if (lPtr->view->flags.mapped && row>=lPtr->topItem        && row<=lPtr->topItem+lPtr->fullFitLines) {        paintItem(lPtr, row);    }    WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL);}