rem: if (sPtr->hScroller == self) {
add: if (sPtr->hScroller == (WMScroller *)self) {
context: doScrolling(WMWidget *self, void *data){    ScrollView *sPtr = (ScrollView*)data;    float value;    int pos;    int vpsize;    float size;        if (sPtr->hScroller == self) {	pos = -sPtr->contentView->pos.x;	size = sPtr->contentView->size.width-sPtr->viewport->size.width;	vpsize = sPtr->viewport->size.width - sPtr->pageScroll;    } else {	pos = -sPtr->contentView->pos.y;	size = sPtr->contentView->size.height-sPtr->viewport->size.height;	vpsize = sPtr->viewport->size.height - sPtr->pageScroll;    }    if (vpsize <= 0)	vpsize = 1;    switch (WMGetScrollerHitPart(self)) {     case WSDecrementLine:	if (pos > 0) {	    pos-=sPtr->lineScroll;	    if (pos < 0)		pos = 0;	    value = (float)pos / size;	    WMSetScrollerParameters(self, value,				    WMGetScrollerKnobProportion(self));	}	break;     case WSIncrementLine:	if (pos < size) {	    pos+=sPtr->lineScroll;	    if (pos > size)		pos = size;	    value = (float)pos / size;	    WMSetScrollerParameters(self, value,				    WMGetScrollerKnobProportion(self));	}	break;     case WSKnob:	value = WMGetScrollerValue(self);	pos = value*size;	break;	     case WSDecrementPage:	if (pos > 0) {	    pos -= vpsize;	    if (pos < 0)		pos = 0;	    value = (float)pos / size;	    WMSetScrollerParameters(self, value,				    WMGetScrollerKnobProportion(self));	}	break;	     case WSIncrementPage:	if (pos < size) {	    pos += vpsize;	    if (pos > size)		pos = size;	    value = (float)pos / size;	    WMSetScrollerParameters(self, value,				    WMGetScrollerKnobProportion(self));	}	break;	     case WSNoPart:     case WSKnobSlot:	break;    }        if (sPtr->hScroller == self) {	W_MoveView(sPtr->contentView, -pos, sPtr->contentView->pos.y);    } else {	W_MoveView(sPtr->contentView, sPtr->contentView->pos.x, -pos);    }}