diff options
author | Antti Määttä <antti.maatta@qt.io> | 2021-03-22 17:13:56 +0200 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2021-03-23 07:15:45 +0200 |
commit | 7050286e3b8797934b694bfaad814bbed19b411d (patch) | |
tree | 84f61bda1bc413311a70e268a12419778e847e4d | |
parent | 78a380f013d124f8680433ac9bb72bdb632fed5c (diff) |
Fix component activation after slide change
Fix component activation after slide change when the component parent was
activated by data input. Data input activated nodes needs similar handling
as user activated. Remove previous change since it did not affect the
situation.
Task-number: QT3DS-4217
Change-Id: I5ff5f5cc2d693987ef61bb0a8f9cec22ec8507f8
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | src/runtime/Qt3DSActivationManager.cpp | 5 | ||||
-rw-r--r-- | src/runtime/Qt3DSSlideSystem.cpp | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/src/runtime/Qt3DSActivationManager.cpp b/src/runtime/Qt3DSActivationManager.cpp index 120676f..d7182d1 100644 --- a/src/runtime/Qt3DSActivationManager.cpp +++ b/src/runtime/Qt3DSActivationManager.cpp @@ -394,9 +394,10 @@ struct STimeContext { // Note that just because a node itself does not participate in the time graph, // this does not mean that its children do not participate in the time graph. + bool userOrControlled = inNode.IsUserActive() || inNode.IsControlledActive(); if (inNode.DoesParticipateInTimeGraph()) { UpdateNodeElementInformation(inNode); - if (inNode.IsUserActive()) { + if (userOrControlled) { // Start time does not get updated if the element doesn't have ATTRIBUTE_STARTTIME. if (inNode.m_ActivationManagerNode.m_StartTime != QT3DS_MAX_U32) inGlobalMin = NVMax(inNode.m_ActivationManagerNode.m_StartTime, inGlobalMin); @@ -415,7 +416,7 @@ struct STimeContext inNode.m_ActivationManagerNode.m_StopTime = inGlobalMax; } // Is it worth looking at children at all - return inNode.IsUserActive(); + return userOrControlled; } void BuildTimeContext(TScanBuffer &inScanBuffer, IActivityZone &inZone) diff --git a/src/runtime/Qt3DSSlideSystem.cpp b/src/runtime/Qt3DSSlideSystem.cpp index 67e38f7..cdda2de 100644 --- a/src/runtime/Qt3DSSlideSystem.cpp +++ b/src/runtime/Qt3DSSlideSystem.cpp @@ -459,8 +459,6 @@ struct SSlideSystem : public ISlideSystem if (!theElem) { QT3DS_ASSERT(false); } else { - if (theElem->IsIndependent()) - theElem->GetBelongedPresentation()->GetFrameData().GetDirtyList().Push(theElem); if (inOp.handleElementActive(*theElem, theElement->m_Active)) { for (TSlideAttributeNodeList::const_iterator iter = TSlideAttributeNodeList::begin(theElement->m_AttributeNodes, |