[Tizen] fix visual artifact of Transition
authorJoogab Yun <joogab.yun@samsung.com>
Mon, 19 Apr 2021 08:16:15 +0000 (17:16 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Mon, 19 Apr 2021 08:16:19 +0000 (17:16 +0900)
This reverts commit 750d2f457e14f3801e424efcc8cc84f36e90a207.

Change-Id: Ie89c794f173dfe12dceb1d1d079f364b076043e7

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 b989941..80e03f8 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
 
   /**