diff options
author | Michael Brasser <michael.brasser@live.com> | 2014-12-18 10:20:37 -0600 |
---|---|---|
committer | Michael Brasser <michael.brasser@live.com> | 2015-01-13 16:07:25 +0100 |
commit | a38f9ec6c96559efa56e8f7346f74f5990810c3a (patch) | |
tree | 09c4728e11cca33e7cedcceca49305ce396f4345 /src/quick/items/qquicklistview.cpp | |
parent | 6c77a37bfcc5ebf30a126e5c937e8a0ca1773d24 (diff) |
Fix flick() with ListView.SnapToItem at bounds.
Previously flick() would not always allow flicking to the very end of
a ListView if ListView.SnapToItem were set. Stop ListView from adding
overshoot, and then incorrectly correcting, if we are flicking exactly
to the end of a list.
Change-Id: Iad56e433bc1ba7d62f0553c4355469c9861df919
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Diffstat (limited to 'src/quick/items/qquicklistview.cpp')
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 851204ccde..8afd5793fc 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -1603,10 +1603,10 @@ bool QQuickListViewPrivate::flick(AxisData &data, qreal minExtent, qreal maxExte } data.flickTarget = isContentFlowReversed() ? -data.flickTarget+size() : data.flickTarget; if (overShoot) { - if (data.flickTarget >= minExtent) { + if (data.flickTarget > minExtent) { overshootDist = overShootDistance(vSize); data.flickTarget += overshootDist; - } else if (data.flickTarget <= maxExtent) { + } else if (data.flickTarget < maxExtent) { overshootDist = overShootDistance(vSize); data.flickTarget -= overshootDist; } @@ -1626,10 +1626,10 @@ bool QQuickListViewPrivate::flick(AxisData &data, qreal minExtent, qreal maxExte accel = v2 / (2.0f * qAbs(dist)); } else if (overShoot) { data.flickTarget = data.move.value() - dist; - if (data.flickTarget >= minExtent) { + if (data.flickTarget > minExtent) { overshootDist = overShootDistance(vSize); data.flickTarget += overshootDist; - } else if (data.flickTarget <= maxExtent) { + } else if (data.flickTarget < maxExtent) { overshootDist = overShootDistance(vSize); data.flickTarget -= overshootDist; } |