summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-08-25 06:15:18 (GMT)
committerMartin Jones <martin.jones@nokia.com>2010-08-25 06:15:18 (GMT)
commitc86fc55faa28551f06ca569d3fcc26b101efc90c (patch)
tree83b7f6d3e7458591458700fb92d8e924ab75a2d8
parent71b97951784e4467f1c7d2cf06aea332c706bdd1 (diff)
downloadQt-c86fc55faa28551f06ca569d3fcc26b101efc90c.zip
Qt-c86fc55faa28551f06ca569d3fcc26b101efc90c.tar.gz
Qt-c86fc55faa28551f06ca569d3fcc26b101efc90c.tar.bz2
Fix poor flicking behavior with slower flicks.
We had a very low minimum velocity flick threshold, but upon deciding to flick we increased that velocity considerably. This resulted in a slow dragging movement generating a fast flick. Now we just have a higher minimum flick velocity threshold, and the correct velocity is used. Task-number: QTBUG-13078 Reviewed-by: Michael Brasser
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 7fee44e..a6e8c85 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE
static const int FlickThreshold = 20;
// Really slow flicks can be annoying.
-static const int minimumFlickVelocity = 200;
+static const int MinimumFlickVelocity = 75;
QDeclarativeFlickableVisibleArea::QDeclarativeFlickableVisibleArea(QDeclarativeFlickable *parent)
: QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.)
@@ -779,23 +779,15 @@ void QDeclarativeFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEv
}
vTime = timeline.time();
- if (qAbs(vData.velocity) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) {
- qreal velocity = vData.velocity;
- if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks.
- velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity;
- flickY(velocity);
- } else {
+ if (qAbs(vData.velocity) > MinimumFlickVelocity && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold)
+ flickY(vData.velocity);
+ else
fixupY();
- }
- if (qAbs(hData.velocity) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) {
- qreal velocity = hData.velocity;
- if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks.
- velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity;
- flickX(velocity);
- } else {
+ if (qAbs(hData.velocity) > MinimumFlickVelocity && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold)
+ flickX(hData.velocity);
+ else
fixupX();
- }
lastPosTime.invalidate();