Fix QSGItem transforms.
authorMichael Brasser <michael.brasser@nokia.com>
Mon, 18 Jul 2011 23:36:07 +0000 (09:36 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 20 Jul 2011 01:07:41 +0000 (03:07 +0200)
If a complex transform exists, it needs to be applied whenever there
are relevant changes (TransformUpdateMask), and not just when the
transform changes (ComplexTransformUpdateMask).

Change-Id: I395f6bed02a671b23dcb5d4ccb3be204d4bafd82
Reviewed-on: http://codereview.qt.nokia.com/1793
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>

src/declarative/items/qsgcanvas.cpp

index 983af89..d9bf99d 100644 (file)
@@ -1676,10 +1676,8 @@ void QSGCanvasPrivate::updateDirtyNode(QSGItem *item)
         if (itemPriv->x != 0. || itemPriv->y != 0.) 
             matrix.translate(itemPriv->x, itemPriv->y);
 
-        if (dirty & QSGItemPrivate::ComplexTransformUpdateMask) {
-            for (int ii = itemPriv->transforms.count() - 1; ii >= 0; --ii)
-                itemPriv->transforms.at(ii)->applyTo(&matrix);
-        }
+        for (int ii = itemPriv->transforms.count() - 1; ii >= 0; --ii)
+            itemPriv->transforms.at(ii)->applyTo(&matrix);
 
         if (itemPriv->scale != 1. || itemPriv->rotation != 0.) {
             QPointF origin = itemPriv->computeTransformOrigin();