summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/runtime/Qt3DSQmlEngine.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/runtime/Qt3DSQmlEngine.cpp b/src/runtime/Qt3DSQmlEngine.cpp
index afe07ed..2c44b7d 100644
--- a/src/runtime/Qt3DSQmlEngine.cpp
+++ b/src/runtime/Qt3DSQmlEngine.cpp
@@ -597,6 +597,17 @@ void CQmlEngineImpl::Initialize()
}
}
+bool allowInactiveAttributeChange(TAttributeHash attrHash)
+{
+ switch (attrHash) {
+ case ATTRIBUTE_SOURCEPATH:
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
bool queueAttributeChange(TElement *target, const char *attName, const char *value,
TAttributeHash attrHash)
{
@@ -604,7 +615,7 @@ bool queueAttributeChange(TElement *target, const char *attName, const char *val
TElement *componentElement = target->GetActivityZone().GetItemTimeParent(*target);
TComponent *component = static_cast<TComponent *>(componentElement);
// Queue changes to elements inside components that have not been activated even once
- if (component->GetCurrentSlide() == 0) {
+ if (component->GetCurrentSlide() == 0 && !allowInactiveAttributeChange(attrHash)) {
IPresentation *presentation = target->GetBelongedPresentation();
CQmlElementHelper::EnsureAttribute(target, attName, attrHash);
presentation->GetComponentManager().queueChange(componentElement, target,