aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickitem.cpp')
-rw-r--r--src/quick/items/qquickitem.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index 6ca7eb52cf..c8a1283ad5 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -5465,6 +5465,15 @@ bool QQuickItemPrivate::transformChanged(QQuickItem *transformedItem)
{
Q_Q(QQuickItem);
+#if QT_CONFIG(quick_shadereffect)
+ if (q == transformedItem) {
+ if (extra.isAllocated() && extra->layer)
+ extra->layer->updateMatrix();
+ }
+#endif
+
+ itemChange(QQuickItem::ItemTransformHasChanged, transformedItem);
+
bool childWantsIt = false;
if (subtreeTransformChangedEnabled) {
// Inform the children in paint order: by the time we visit leaf items,
@@ -5474,12 +5483,6 @@ bool QQuickItemPrivate::transformChanged(QQuickItem *transformedItem)
childWantsIt |= QQuickItemPrivate::get(child)->transformChanged(transformedItem);
}
-#if QT_CONFIG(quick_shadereffect)
- if (q == transformedItem) {
- if (extra.isAllocated() && extra->layer)
- extra->layer->updateMatrix();
- }
-#endif
const bool thisWantsIt = q->flags().testFlag(QQuickItem::ItemObservesViewport);
const bool ret = childWantsIt || thisWantsIt;
if (!ret && componentComplete && subtreeTransformChangedEnabled) {
@@ -5491,7 +5494,6 @@ bool QQuickItemPrivate::transformChanged(QQuickItem *transformedItem)
if (thisWantsIt && q->clip() && !(dirtyAttributes & QQuickItemPrivate::Clip))
dirty(QQuickItemPrivate::Clip);
- itemChange(QQuickItem::ItemTransformHasChanged, transformedItem);
return ret;
}