Window window = DevelWindow::Get(actor);
if(window)
{
+ mPlacementWindow = window;
DevelWindow::VisibilityChangedSignal(window).Connect(this, &RiveAnimationView::OnWindowVisibilityChanged);
}
}
DevelActor::VisibilityChangedSignal(actor).Disconnect(this, &RiveAnimationView::OnControlVisibilityChanged);
- Window window = DevelWindow::Get(actor);
+ Window window = mPlacementWindow.GetHandle();
if(window)
{
DevelWindow::VisibilityChangedSignal(window).Disconnect(this, &RiveAnimationView::OnWindowVisibilityChanged);
+ mPlacementWindow.Reset();
}
// Reset the visual size to zero so that when adding the actor back to stage the rasterization is forced
*/
// EXTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali/devel-api/actors/actor-devel.h>
#include <dali/public-api/adaptor-framework/window.h>
#include <dali/public-api/object/property-notification.h>
-#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali/public-api/object/weak-handle.h>
// INTERNAL INCLUDES
#include <dali-extension/devel-api/rive-animation-view/rive-animation-view.h>
RiveAnimationView& operator=(const RiveAnimationView&);
private:
+ WeakHandle<Window> mPlacementWindow;
std::string mUrl{};
RiveAnimationTask::AnimationData mAnimationData{};
RiveAnimationTaskPtr mRiveAnimationTask{};