diff options
-rw-r--r-- | src/runtime/Qt3DSQmlEngine.cpp | 13 |
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, |