1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-21 05:18:06 +01:00

fixed vertical scrolling bug

This commit is contained in:
kojima
2001-02-16 01:34:21 +00:00
parent d9249dd99a
commit 50e85f57f2

View File

@@ -113,7 +113,7 @@ applyScrollerValues(WMScrollView *sPtr)
int size; int size;
size = sPtr->contentView->size.width-sPtr->viewport->size.width; size = sPtr->contentView->size.height-sPtr->viewport->size.height;
y = v * size; y = v * size;
} else { } else {
@@ -551,14 +551,13 @@ static void
updateScrollerProportion(ScrollView *sPtr) updateScrollerProportion(ScrollView *sPtr)
{ {
float prop, value; float prop, value;
float oldV, oldP;
if (sPtr->flags.hasHScroller) { if (sPtr->flags.hasHScroller) {
float oldV, oldP;
oldV = WMGetScrollerValue(sPtr->hScroller); oldV = WMGetScrollerValue(sPtr->hScroller);
oldP = WMGetScrollerKnobProportion(sPtr->hScroller); oldP = WMGetScrollerKnobProportion(sPtr->hScroller);
prop = (float)sPtr->viewport->size.width/sPtr->contentView->size.width; prop = (float)sPtr->viewport->size.width/(float)sPtr->contentView->size.width;
if (oldP == 1.0) if (oldP == 1.0)
value = 0; value = 0;
@@ -567,10 +566,15 @@ updateScrollerProportion(ScrollView *sPtr)
WMSetScrollerParameters(sPtr->hScroller, value, prop); WMSetScrollerParameters(sPtr->hScroller, value, prop);
} }
if (sPtr->flags.hasVScroller) { if (sPtr->flags.hasVScroller) {
prop = (float)sPtr->viewport->size.height/sPtr->contentView->size.height; oldV = WMGetScrollerValue(sPtr->vScroller);
oldP = WMGetScrollerKnobProportion(sPtr->vScroller);
value = WMGetScrollerValue(sPtr->vScroller); prop = (float)sPtr->viewport->size.height/(float)sPtr->contentView->size.height;
if (oldP == 1.0)
value = 0;
else
value = (prop * oldV) / oldP;
WMSetScrollerParameters(sPtr->vScroller, value, prop); WMSetScrollerParameters(sPtr->vScroller, value, prop);
} }
applyScrollerValues(sPtr); applyScrollerValues(sPtr);