aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickscrollbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquickscrollbar.cpp')
-rw-r--r--src/quicktemplates2/qquickscrollbar.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp
index aa0094aa..67195ba8 100644
--- a/src/quicktemplates2/qquickscrollbar.cpp
+++ b/src/quicktemplates2/qquickscrollbar.cpp
@@ -872,8 +872,9 @@ void QQuickScrollBarAttachedPrivate::scrollHorizontal()
{
QQuickFriendlyFlickable *f = reinterpret_cast<QQuickFriendlyFlickable *>(flickable);
- const qreal extent = f->contentWidth() - f->minXExtent();
- const qreal cx = horizontal->position() * extent;
+ const qreal viewwidth = f->width();
+ const qreal maxxextent = -f->maxXExtent() + f->minXExtent();
+ const qreal cx = horizontal->position() * (maxxextent + viewwidth) - f->minXExtent();
if (!qIsNaN(cx) && !qFuzzyCompare(cx, flickable->contentX()))
flickable->setContentX(cx);
@@ -883,8 +884,9 @@ void QQuickScrollBarAttachedPrivate::scrollVertical()
{
QQuickFriendlyFlickable *f = reinterpret_cast<QQuickFriendlyFlickable *>(flickable);
- const qreal extent = f->contentHeight() - f->minYExtent();
- const qreal cy = vertical->position() * extent;
+ const qreal viewheight = f->height();
+ const qreal maxyextent = -f->maxYExtent() + f->minYExtent();
+ const qreal cy = vertical->position() * (maxyextent + viewheight) - f->minYExtent();
if (!qIsNaN(cy) && !qFuzzyCompare(cy, flickable->contentY()))
flickable->setContentY(cy);