rem: bPtr->selectedColumn = i;
context: listCallback(void *self, void *clientData){    WMBrowser *bPtr = (WMBrowser*)clientData;    WMList *lPtr = (WMList*)self;    WMListItem *item;    int i;    item = WMGetListSelectedItem(lPtr);    if (!item)	return;    for (i=0; i<bPtr->columnCount; i++) {	if (lPtr == bPtr->columns[i])	    break;    }    assert(i<bPtr->columnCount);    bPtr->selectedColumn = i;    /* columns at right must be cleared */    removeColumn(bPtr, i+1);    /* open directory */    if (item->isBranch) {	WMAddBrowserColumn(bPtr);	loadColumn(bPtr, bPtr->usedColumnCount-1);    }    if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)	i = 0;    else	i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;    scrollToColumn(bPtr, i);    /* call callback for click */    if (bPtr->action)	(*bPtr->action)(bPtr, bPtr->clientData);}