- Because InheritedVisibilityChanged Event includes WindowVisibilitychanged Event,
this patch removed duplicated work about visibility.
Change-Id: I1ffab5f4252e6feb0f85491a9e222b9094494909
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
void Window::Show()
{
GetImplementation(*this).mVisible = true;
+ GetImplementation(*this).GetScene().Show();
GetImplementation(*this).mVisibilityChangedSignal.Emit(*this, true);
}
void Window::Hide()
{
GetImplementation(*this).mVisible = false;
+ GetImplementation(*this).GetScene().Hide();
GetImplementation(*this).mVisibilityChangedSignal.Emit(*this, false);
}
END_TEST;
}
-int UtcDaliAnimatedImageVisualWindowVisibilityChanged(void)
+int UtcDaliAnimatedImageVisualInheritedVisibilityChanged(void)
{
ToolkitTestApplication application;
- tet_infoline("UtcDaliAnimatedImageVisualWindowVisibilityChanged");
+ tet_infoline("UtcDaliAnimatedImageVisualInheritedVisibilityChanged");
Property::Map propertyMap;
propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_IMAGE)
END_TEST;
}
-int UtcDaliAnimatedVectorImageVisualWindowVisibilityChanged(void)
+int UtcDaliAnimatedVectorImageVisualInheritedVisibilityChanged(void)
{
ToolkitTestApplication application;
- tet_infoline("UtcDaliAnimatedVectorImageVisualWindowVisibilityChanged");
+ tet_infoline("UtcDaliAnimatedVectorImageVisualInheritedVisibilityChanged");
Property::Map propertyMap;
propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE)
}
}
-void GlView::OnWindowVisibilityChanged(Window window, bool visible)
-{
- if(mRenderThread)
- {
- if(visible && Self().GetProperty<bool>(Actor::Property::VISIBLE))
- {
- mRenderThread->Resume();
- }
- else
- {
- mRenderThread->Pause();
- }
- }
-}
-
void GlView::OnSceneConnection(int depth)
{
Control::OnSceneConnection(depth);
-
- Actor self = Self();
- Window window = DevelWindow::Get(self);
-
- if(window)
- {
- mPlacementWindow = window;
- DevelWindow::VisibilityChangedSignal(window).Connect(this, &GlView::OnWindowVisibilityChanged);
- }
}
void GlView::OnSceneDisconnection()
{
Control::OnSceneDisconnection();
- Window window = mPlacementWindow.GetHandle();
- if(window)
- {
- DevelWindow::VisibilityChangedSignal(window).Disconnect(this, &GlView::OnWindowVisibilityChanged);
- mPlacementWindow.Reset();
- }
}
Dali::Geometry GlView::CreateTexturedQuad()
Dali::NativeImageSourceQueue::ColorFormat GetColorFormat(Dali::Toolkit::GlView::ColorFormat format);
private:
- WeakHandle<Window> mPlacementWindow;
std::unique_ptr<GlViewRenderThread> mRenderThread;
Dali::NativeImageSourceQueuePtr mNativeImageQueue;
Dali::Toolkit::GlView::RenderingMode mRenderingMode;
PrepareTextureSet();
actor.InheritedVisibilityChangedSignal().Connect(this, &AnimatedImageVisual::OnControlInheritedVisibilityChanged);
-
- Window window = DevelWindow::Get(actor);
- if(window)
- {
- mPlacementWindow = window;
- DevelWindow::VisibilityChangedSignal(window).Connect(this, &AnimatedImageVisual::OnWindowVisibilityChanged);
- }
}
void AnimatedImageVisual::DoSetOffScene(Actor& actor)
mCurrentLoopIndex = FIRST_LOOP;
actor.InheritedVisibilityChangedSignal().Disconnect(this, &AnimatedImageVisual::OnControlInheritedVisibilityChanged);
-
- Window window = mPlacementWindow.GetHandle();
- if(window)
- {
- DevelWindow::VisibilityChangedSignal(window).Disconnect(this, &AnimatedImageVisual::OnWindowVisibilityChanged);
- mPlacementWindow.Reset();
- }
}
void AnimatedImageVisual::OnSetTransform()
}
}
-void AnimatedImageVisual::OnWindowVisibilityChanged(Window window, bool visible)
-{
- if(!visible && mActionStatus != DevelAnimatedImageVisual::Action::STOP)
- {
- mActionStatus = DevelAnimatedImageVisual::Action::STOP;
- DisplayNextFrame();
- DALI_LOG_INFO(gAnimImgLogFilter, Debug::Verbose, "AnimatedImageVisual::OnWindowVisibilityChanged: invisibile. Pause animation [%p]\n", this);
- }
-}
-
} // namespace Internal
} // namespace Toolkit
*/
void OnControlInheritedVisibilityChanged(Actor actor, bool visible);
- /**
- * @brief Callback when the visibility of the window is changed.
- */
- void OnWindowVisibilityChanged(Window window, bool visible);
-
// Undefined
AnimatedImageVisual(const AnimatedImageVisual& animatedImageVisual);
private:
Timer mFrameDelayTimer;
- WeakHandle<Window> mPlacementWindow;
WeakHandle<Actor> mPlacementActor;
ImageVisualShaderFactory& mImageVisualShaderFactory;
actor.InheritedVisibilityChangedSignal().Connect(this, &AnimatedVectorImageVisual::OnControlInheritedVisibilityChanged);
- Window window = DevelWindow::Get(actor);
- if(window)
- {
- mPlacementWindow = window;
- DevelWindow::VisibilityChangedSignal(window).Connect(this, &AnimatedVectorImageVisual::OnWindowVisibilityChanged);
- }
-
if(mImpl->mEventObserver)
{
// The visual needs it's size set before it can be rasterized hence request relayout once on stage
actor.InheritedVisibilityChangedSignal().Disconnect(this, &AnimatedVectorImageVisual::OnControlInheritedVisibilityChanged);
- Window window = mPlacementWindow.GetHandle();
- if(window)
- {
- DevelWindow::VisibilityChangedSignal(window).Disconnect(this, &AnimatedVectorImageVisual::OnWindowVisibilityChanged);
- mPlacementWindow.Reset();
- }
-
mPlacementActor.Reset();
// Reset the visual size to zero so that when adding the actor back to stage the rasterization is forced
}
}
-void AnimatedVectorImageVisual::OnWindowVisibilityChanged(Window window, bool visible)
-{
- if(!visible)
- {
- StopAnimation();
- TriggerVectorRasterization();
-
- DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "AnimatedVectorImageVisual::OnWindowVisibilityChanged: invisibile. Pause animation [%p]\n", this);
- }
-}
-
void AnimatedVectorImageVisual::OnProcessEvents()
{
SendAnimationData();
void OnControlInheritedVisibilityChanged(Actor actor, bool visible);
/**
- * @brief Callback when the visibility of the window is changed.
- */
- void OnWindowVisibilityChanged(Window window, bool visible);
-
- /**
* @brief Callback when the event is processed.
*/
void OnProcessEvents();
AnimatedVectorImageVisual& operator=(const AnimatedVectorImageVisual& visual) = delete;
private:
- WeakHandle<Window> mPlacementWindow;
VisualUrl mImageUrl;
VectorAnimationTask::AnimationData mAnimationData;
VectorAnimationTaskPtr mVectorAnimationTask;