Fix emitting originYChanged signals even when originY wouldn't change
authorGabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Thu, 16 Feb 2012 09:18:56 +0000 (10:18 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 3 Oct 2012 14:03:29 +0000 (16:03 +0200)
Same for originXChanged.

Conflicts:
src/quick/items/qquickflickable.cpp
src/quick/items/qquickflickable_p_p.h

Change-Id: I1a316f326b924da4722b692cf27db48312fc9236
Reviewed-by: Andras Becsi <andras.becsi@digia.com>

src/quick/items/qquickflickable.cpp
src/quick/items/qquickflickable_p_p.h

index 0a8e220..a15f77d 100644 (file)
@@ -540,12 +540,20 @@ void QQuickFlickablePrivate::updateBeginningEnd()
 
     if (vData.extentsChanged) {
         vData.extentsChanged = false;
-        emit q->originYChanged();
+        qreal originY = q->originY();
+        if (vData.origin != originY) {
+            vData.origin = originY;
+            emit q->originYChanged();
+        }
     }
 
     if (hData.extentsChanged) {
         hData.extentsChanged = false;
-        emit q->originXChanged();
+        qreal originX = q->originX();
+        if (hData.origin != originX) {
+            hData.origin = originX;
+            emit q->originXChanged();
+        }
     }
 
     if (atBoundaryChange)
index 49f27a4..ab5f03f 100644 (file)
@@ -102,6 +102,7 @@ public:
             : move(fp, func)
             , transitionToBounds(0)
             , viewSize(-1), startMargin(0), endMargin(0)
+            , origin(0)
             , transitionTo(0)
             , continuousFlickVelocity(0), vTime(0)
             , smoothVelocity(fp), atEnd(false), atBeginning(true)
@@ -146,6 +147,7 @@ public:
         qreal flickTarget;
         qreal startMargin;
         qreal endMargin;
+        qreal origin;
         qreal transitionTo;
         qreal continuousFlickVelocity;
         QElapsedTimer velocityTime;