summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2021-03-22 17:13:56 +0200
committerAntti Määttä <antti.maatta@qt.io>2021-03-23 07:15:45 +0200
commit7050286e3b8797934b694bfaad814bbed19b411d (patch)
tree84f61bda1bc413311a70e268a12419778e847e4d
parent78a380f013d124f8680433ac9bb72bdb632fed5c (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.cpp5
-rw-r--r--src/runtime/Qt3DSSlideSystem.cpp2
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,