aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickscrollindicator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquickscrollindicator.cpp')
-rw-r--r--src/quicktemplates2/qquickscrollindicator.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp
index 7f83f36813..918f7db86d 100644
--- a/src/quicktemplates2/qquickscrollindicator.cpp
+++ b/src/quicktemplates2/qquickscrollindicator.cpp
@@ -163,9 +163,12 @@ QQuickScrollIndicatorPrivate::VisualArea QQuickScrollIndicatorPrivate::visualAre
if (minimumSize > size)
visualPos = position / (1.0 - size) * (1.0 - minimumSize);
- qreal visualSize = qBound<qreal>(0, qMax(size, minimumSize) + qMin<qreal>(0, visualPos), 1.0 - visualPos);
+ qreal maximumSize = qMax<qreal>(0.0, 1.0 - visualPos);
+ qreal visualSize = qMax<qreal>(minimumSize,
+ qMin<qreal>(qMax(size, minimumSize) + qMin<qreal>(0, visualPos),
+ maximumSize));
- visualPos = qBound<qreal>(0, visualPos, 1.0 - visualSize);
+ visualPos = qMax<qreal>(0,qMin<qreal>(visualPos,qMax<qreal>(0, 1.0 - visualSize)));
return VisualArea(visualPos, visualSize);
}
@@ -234,6 +237,10 @@ void QQuickScrollIndicator::setSize(qreal size)
auto oldVisualArea = d->visualArea();
d->size = size;
+ if (d->size + d->position > 1.0) {
+ setPosition(1.0 - d->size);
+ oldVisualArea = d->visualArea();
+ }
if (isComponentComplete())
d->resizeContent();
emit sizeChanged();