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:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user