Commit d7f2a77f authored by Martin Jones's avatar Martin Jones Committed by Qt by Nokia

Set more sensible Flickable default input filtering parameters

Shouldn't throw anything away by default.  Also fix bug that
flicking back into bounds from outside bounds halved velocity.

Change-Id: I3c2d303a9e46910439dc8bfb01771376f634a684
Reviewed-by: default avatarLaszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: default avatarMichael Brasser <michael.brasser@nokia.com>
parent 25793276
......@@ -68,7 +68,7 @@ QT_BEGIN_NAMESPACE
// The number of samples to discard when calculating the flick velocity.
// Touch panels often produce inaccurate results as the finger is lifted.
#ifndef QML_FLICK_DISCARDSAMPLES
#define QML_FLICK_DISCARDSAMPLES 1
#define QML_FLICK_DISCARDSAMPLES 0
#endif
// The default maximum velocity of a flick.
......@@ -103,7 +103,7 @@ QT_BEGIN_NAMESPACE
// FlickThreshold determines how far the "mouse" must have moved
// before we perform a flick.
static const int FlickThreshold = 20;
static const int FlickThreshold = 15;
// RetainGrabVelocity is the maxmimum instantaneous velocity that
// will ensure the Flickable retains the grab on consecutive flicks.
......@@ -1030,7 +1030,7 @@ void QQuickFlickablePrivate::handleMouseReleaseEvent(QMouseEvent *event)
vVelocity = (extended && extended->capabilities().testFlag(QTouchDevice::Velocity))
? extended->velocity().y() : vData.velocity;
}
if (vData.atBeginning || vData.atEnd) {
if ((vData.atBeginning && vVelocity > 0.) || (vData.atEnd && vVelocity < 0.)) {
vVelocity /= 2;
} else if (vData.continuousFlickVelocity != 0.0
&& vData.viewSize/q->height() > QML_FLICK_MULTIFLICK_RATIO
......@@ -1046,7 +1046,7 @@ void QQuickFlickablePrivate::handleMouseReleaseEvent(QMouseEvent *event)
hVelocity = (extended && extended->capabilities().testFlag(QTouchDevice::Velocity))
? extended->velocity().x() : hData.velocity;
}
if (hData.atBeginning || hData.atEnd) {
if ((hData.atBeginning && hVelocity > 0.) || (hData.atEnd && hVelocity < 0.)) {
hVelocity /= 2;
} else if (hData.continuousFlickVelocity != 0.0
&& hData.viewSize/q->width() > QML_FLICK_MULTIFLICK_RATIO
......
......@@ -585,7 +585,7 @@ void tst_qquickflickable::flickVelocity()
QQuickFlickablePrivate *fp = QQuickFlickablePrivate::get(flickable);
bool boosted = false;
for (int i = 0; i < 6; ++i) {
flick(canvas, QPoint(20,390), QPoint(20, 50), 200);
flick(canvas, QPoint(20,390), QPoint(20, 50), 100);
boosted |= fp->flickBoost > 1.0;
}
QVERIFY(boosted);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment