rem: float floatValue; float value = bPtr->columnCount - bPtr->maxVisibleColumns;
add: double floatValue; double value = bPtr->columnCount - bPtr->maxVisibleColumns;
context: scrollCallback(WMWidget *scroller, void *self){    WMBrowser *bPtr = (WMBrowser*)self;    WMScroller *sPtr = (WMScroller*)scroller;    int newFirst;#define LAST_VISIBLE_COLUMN  bPtr->firstVisibleColumn+bPtr->maxVisibleColumns    switch (WMGetScrollerHitPart(sPtr)) {     case WSDecrementLine:	if (bPtr->firstVisibleColumn > 0) {	    scrollToColumn(bPtr, bPtr->firstVisibleColumn-1);	}	break;	     case WSDecrementPage:	if (bPtr->firstVisibleColumn > 0) {	    newFirst = bPtr->firstVisibleColumn - bPtr->maxVisibleColumns;	    scrollToColumn(bPtr, newFirst);	}	break;	     case WSIncrementLine:	if (LAST_VISIBLE_COLUMN < bPtr->columnCount) {	    scrollToColumn(bPtr, bPtr->firstVisibleColumn+1);	}	break;	     case WSIncrementPage:	if (LAST_VISIBLE_COLUMN < bPtr->columnCount) {	    newFirst = bPtr->firstVisibleColumn + bPtr->maxVisibleColumns;	    if (newFirst+bPtr->maxVisibleColumns >= bPtr->columnCount)		newFirst = bPtr->columnCount - bPtr->maxVisibleColumns;	    scrollToColumn(bPtr, newFirst);	}	break;	     case WSKnob:	{	    float floatValue;	    float value = bPtr->columnCount - bPtr->maxVisibleColumns;	    	    floatValue = WMGetScrollerValue(bPtr->scroller);	    	    floatValue = (floatValue*value)/value;	    	    newFirst = floatValue*(float)(bPtr->columnCount - bPtr->maxVisibleColumns);	    if (bPtr->firstVisibleColumn != newFirst)		scrollToColumn(bPtr, newFirst);	    else		WMSetScrollerParameters(bPtr->scroller, floatValue,					bPtr->maxVisibleColumns/(float)bPtr->columnCount);	}	break;     case WSKnobSlot:     case WSNoPart:	/* do nothing */	break;    }#undef LAST_VISIBLE_COLUMN}