[Tizen] fix visual artifact of Transition 13/256913/1
authorseungho <sbsh.baek@samsung.com>
Wed, 14 Apr 2021 11:50:49 +0000 (20:50 +0900)
committerseungho <sbsh.baek@samsung.com>
Wed, 14 Apr 2021 11:52:13 +0000 (20:52 +0900)
Change-Id: Iaa2ee2950dcfd434f2b2f70b8f9ec817c0543a21
Signed-off-by: seungho <sbsh.baek@samsung.com>
dali-toolkit/internal/transition/transition-base-impl.h
dali-toolkit/internal/transition/transition-impl.cpp
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/control-impl.h

index 76ab1d8..9dc3b73 100644 (file)
@@ -161,6 +161,11 @@ protected:
    */
   Vector4 GetWorldColor(Dali::Actor actor);
 
+  bool IsTransitionWithChild()
+  {
+    return mTransitionWithChild;
+  }
+
 protected:
   /**
    * Construct a new TransitionBase.
index f771585..d9cffb3 100644 (file)
@@ -129,7 +129,14 @@ void Transition::OnPlay()
   SetFinishPropertyMap(finishPropertyMap);
 
   // source View becomes transparent during transition.
-  GetImplementation(mSourceView).SetTransparent(true);
+  if(IsTransitionWithChild())
+  {
+    mSourceView[Dali::Actor::Property::VISIBLE] = false;
+  }
+  else
+  {
+    GetImplementation(mSourceView).SetTransparent(true);
+  }
 
   Dali::Animation animation = GetAnimation();
   if(!animation)
@@ -144,7 +151,14 @@ void Transition::OnFinished()
 {
   if(mShowSourceAfterFinished)
   {
-    GetImplementation(mSourceView).SetTransparent(false);
+    if(IsTransitionWithChild())
+    {
+      mSourceView[Dali::Actor::Property::VISIBLE] = true;
+    }
+    else
+    {
+      GetImplementation(mSourceView).SetTransparent(false);
+    }
   }
 }
 
index 1d35b71..69a3482 100644 (file)
@@ -767,16 +767,6 @@ void Control::CreateTransitions(Dali::Animation& animation, Dali::Toolkit::Contr
   }
 }
 
-void Control::SetTransparent(bool transparent)
-{
-  CustomActorImpl::SetTransparent(transparent);
-}
-
-bool Control::GetTransparent() const
-{
-  return CustomActorImpl::GetTransparent();
-}
-
 void Control::MakeVisualTransition(Dali::Animation& animation, Dali::Toolkit::Control source, Dali::Property::Index index, AlphaFunction alphaFunction, TimePeriod timePeriod)
 {
   Dali::Toolkit::Control sourceHandle      = Dali::Toolkit::Control::DownCast(source);
index b3d542f..18aaac6 100644 (file)
@@ -264,16 +264,6 @@ public:
    */
   virtual void CreateTransitions(Dali::Animation& animation, Dali::Toolkit::Control source, AlphaFunction alphaFunction, TimePeriod timePeriod);
 
-  /**
-   * @brief Set this Control is transparent or not without any affection on the child Actors.
-   */
-  void SetTransparent(bool transparent) override;
-
-  /**
-   * @brief Get this Control is transparent or not.
-   */
-  bool GetTransparent() const override;
-
   // Signals
 
   /**