summaryrefslogtreecommitdiffstats
path: root/src/runtime/Qt3DSActivationManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/Qt3DSActivationManager.cpp')
-rw-r--r--src/runtime/Qt3DSActivationManager.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime/Qt3DSActivationManager.cpp b/src/runtime/Qt3DSActivationManager.cpp
index 664e3a2..b1965fa 100644
--- a/src/runtime/Qt3DSActivationManager.cpp
+++ b/src/runtime/Qt3DSActivationManager.cpp
@@ -46,6 +46,7 @@
#include "foundation/Qt3DSSync.h"
#include "Qt3DSRenderThreadPool.h"
#include "foundation/Qt3DSSimpleTypes.h"
+#include "Qt3DSInputEventTypes.h"
using namespace qt3ds::runtime;
using namespace qt3ds::runtime::element;
@@ -517,6 +518,15 @@ struct STimeContext
Mutex &inElementAccessMutex, bool &scriptBufferRequiresSort,
bool inIsActive)
{
+
+ if (inNode.Flags().HasActivityAction() && inNode.GetBelongedPresentation()) {
+ // If node has activity changing actions enabled, fire them
+ if (inIsActive)
+ inNode.GetBelongedPresentation()->FireEvent(Q3DStudio::ON_ACTIVATE, &inNode);
+ else
+ inNode.GetBelongedPresentation()->FireEvent(Q3DStudio::ON_DEACTIVATE, &inNode);
+ }
+
Mutex::ScopedLock __locker(inElementAccessMutex);
TElementAndSortKey theKey(&inNode, inNode.Depth());
if (inIsActive) {