fix ControlAnimator bug
authorDae young Ryu <karzia@samsung.com>
Fri, 13 Sep 2013 10:59:21 +0000 (19:59 +0900)
committerDae young Ryu <karzia@samsung.com>
Fri, 13 Sep 2013 12:07:17 +0000 (21:07 +0900)
Change-Id: I94793320b5e68af521a6c8829e961469f0a0be1e
Signed-off-by: Dae young Ryu <karzia@samsung.com>
src/ui/animations/FUiAnim_ControlAnimatorImpl.cpp

index 25033e7..3bcdd64 100644 (file)
@@ -879,7 +879,8 @@ _ControlAnimatorImpl::SetGroupAnimation(AnimationGroup* pAnimGrp)
                ANIMATION_TARGET_POSITION,
                ANIMATION_TARGET_ALPHA
        };
-       bool setLogicalBnds = false;
+       bool setLogicalPos = false;
+       bool setLogicalSize = false;
        bool setShowStateInternal = false;
        long delay = 0;
        long duration = 0;
@@ -942,13 +943,13 @@ _ControlAnimatorImpl::SetGroupAnimation(AnimationGroup* pAnimGrp)
                                                Rectangle controlRect = __pControl->GetBounds();
                                                if(animTarget == ANIMATION_TARGET_POSITION)
                                                {
-                                                       setLogicalBnds = true;
+                                                       setLogicalPos = true;
                                                        __logicalBoundsHolder.x = controlRect.x;
                                                        __logicalBoundsHolder.y = controlRect.y;
                                                }
                                                else if(animTarget == ANIMATION_TARGET_SIZE)
                                                {
-                                                       setLogicalBnds = true;
+                                                       setLogicalSize = true;
                                                        __logicalBoundsHolder.width = controlRect.width;
                                                        __logicalBoundsHolder.height = controlRect.height;
                                                }
@@ -1007,7 +1008,8 @@ _ControlAnimatorImpl::SetGroupAnimation(AnimationGroup* pAnimGrp)
                                                (pSequentialAnimGrp->GetAnimationTargetTypeAt(index) == ANIMATION_TARGET_SIZE))
                                        {
                                                __logicalBoundsHolder = __pControl->GetBounds();
-                                               setLogicalBnds = true;
+                                               setLogicalPos = true;
+                                               setLogicalSize = true;
                                        }
 
                                        if (pSequentialAnimGrp->GetAnimationTargetTypeAt(index) == ANIMATION_TARGET_ALPHA)
@@ -1070,7 +1072,7 @@ _ControlAnimatorImpl::SetGroupAnimation(AnimationGroup* pAnimGrp)
                }
        }
 
-       if (setLogicalBnds)
+       if (setLogicalPos || setLogicalSize)
        {
                bool disable = false;
                bool propagation = false;
@@ -1082,7 +1084,21 @@ _ControlAnimatorImpl::SetGroupAnimation(AnimationGroup* pAnimGrp)
                        r = DisableVisualElementPropagation(propagation);
                        SysTryCatch(NID_UI_ANIM, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] A system error has been occurred. Failed to disable/enable visual element propagation.");
                }
-               r = __pControl->SetBounds(__logicalBoundsHolder);
+               if (setLogicalPos && setLogicalSize)
+               {
+                       r = __pControl->SetBounds(__logicalBoundsHolder);
+               }
+               else
+               {
+                       if (setLogicalPos)
+                       {
+                               r = __pControl->SetPosition(__logicalBoundsHolder.x, __logicalBoundsHolder.y);
+                       }
+                       else if(setLogicalSize)
+                       {
+                               r = __pControl->SetSize(__logicalBoundsHolder.width, __logicalBoundsHolder.height);
+                       }
+               }
 
                if (propagation)
                {