diff options
author | Michael Brasser <mbrasser@ford.com> | 2018-06-14 20:41:40 -0500 |
---|---|---|
committer | Michael Brasser <michael.brasser@live.com> | 2018-06-29 16:41:18 +0000 |
commit | 55a269407222763c2920d6322511b349a7e701a9 (patch) | |
tree | 152f37fdb9c33c7fb78795a355d9f4a1ca300a93 /src/quick/items/qquickgridview.cpp | |
parent | 8b3113725fda334e86f0a103572e29352941c060 (diff) |
Fix SnapOneItem/Row behavior for mid-range flicks
Previously small and large flicks would go to the next item, but there
was a small range just under halfway where it would snap to the previous
position (most easily hit with smaller delegates). Get rid of this
blindspot.
Change-Id: Ib8d026cad9427b2d209a9646b3ea515f578457ae
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index f2fa66332c..0886d358c3 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -914,7 +914,7 @@ void QQuickGridViewPrivate::fixup(AxisData &data, qreal minExtent, qreal maxExte qreal tempPosition = isContentFlowReversed() ? -position()-size() : position(); if (snapMode == QQuickGridView::SnapOneRow && moveReason == Mouse) { // if we've been dragged < rowSize()/2 then bias towards the next row - qreal dist = data.move.value() - (data.pressPos - data.dragStartOffset); + qreal dist = data.move.value() - data.pressPos; qreal bias = 0; if (data.velocity > 0 && dist > QML_FLICK_SNAPONETHRESHOLD && dist < rowSize()/2) bias = rowSize()/2; @@ -1013,7 +1013,7 @@ bool QQuickGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal maxExte if (data.move.value() < minExtent) { if (snapMode == QQuickGridView::SnapOneRow) { // if we've been dragged < averageSize/2 then bias towards the next item - qreal dist = data.move.value() - (data.pressPos - data.dragStartOffset); + qreal dist = data.move.value() - data.pressPos; qreal bias = dist < rowSize()/2 ? rowSize()/2 : 0; if (isContentFlowReversed()) bias = -bias; @@ -1030,7 +1030,7 @@ bool QQuickGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal maxExte if (data.move.value() > maxExtent) { if (snapMode == QQuickGridView::SnapOneRow) { // if we've been dragged < averageSize/2 then bias towards the next item - qreal dist = data.move.value() - (data.pressPos - data.dragStartOffset); + qreal dist = data.move.value() - data.pressPos; qreal bias = -dist < rowSize()/2 ? rowSize()/2 : 0; if (isContentFlowReversed()) bias = -bias; |