summaryrefslogtreecommitdiffstats
path: root/src/corelib/statemachine
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/statemachine')
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp
index 6f626f5..98aa9f2 100644
--- a/src/corelib/statemachine/qstatemachine.cpp
+++ b/src/corelib/statemachine/qstatemachine.cpp
@@ -698,6 +698,13 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr
QAbstractAnimation *anim = animations.at(j);
QObject::disconnect(anim, SIGNAL(finished()), q, SLOT(_q_animationFinished()));
stateForAnimation.remove(anim);
+
+ // Stop the (top-level) animation.
+ // ### Stopping nested animation has weird behavior.
+ while (QAnimationGroup *group = anim->group())
+ anim = group;
+ anim->stop();
+
if (resetAnimationEndValues.contains(anim)) {
qobject_cast<QVariantAnimation*>(anim)->setEndValue(QVariant()); // ### generalize
resetAnimationEndValues.remove(anim);
@@ -721,11 +728,6 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr
if (!found) {
assn.object->setProperty(assn.propertyName, assn.value);
}
- // Stop the (top-level) animation.
- // ### Stopping nested animation has weird behavior.
- while (QAnimationGroup *group = anim->group())
- anim = group;
- anim->stop();
}
}