From 1390f6f1208ca914ee801ff8be1352fc0b094f62 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 19 Apr 2010 15:50:35 +1000 Subject: Avoid painfully slow flicking to snap positions. Task-number: QTBUG-9994 --- src/declarative/graphicsitems/qdeclarativelistview.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 5a0292f..672f723 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -50,6 +50,7 @@ #include #include +#include #include QT_BEGIN_NAMESPACE @@ -1206,7 +1207,15 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m data.flickTarget -= overshootDist; } } - dist = -data.flickTarget + data.move.value(); + qreal adjDist = -data.flickTarget + data.move.value(); + if (qAbs(adjDist) > qAbs(dist)) { + // Prevent painfully slow flicking - adjust velocity to suit flickDeceleration + v2 = accel * 2.0f * qAbs(dist); + v = qSqrt(v2); + if (dist > 0) + v = -v; + } + dist = adjDist; accel = v2 / (2.0f * qAbs(dist)); } else if (overShoot) { data.flickTarget = data.move.value() - dist; -- cgit v0.12