From: Anton Obzhirov Date: Thu, 6 Dec 2018 15:18:23 +0000 (+0000) Subject: [5.0] Workaround in AbsoluteLayout for animation bug in legacy application. X-Git-Tag: accepted/tizen/5.0/unified/20181207.061437^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F64%2F194664%2F1;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [5.0] Workaround in AbsoluteLayout for animation bug in legacy application. Change-Id: I0c1deadbc2cd1a53191ed7c1f7516170b8059cb4 --- diff --git a/dali-toolkit/internal/layouting/absolute-layout-impl.cpp b/dali-toolkit/internal/layouting/absolute-layout-impl.cpp index 8a635af..ebd70a7 100644 --- a/dali-toolkit/internal/layouting/absolute-layout-impl.cpp +++ b/dali-toolkit/internal/layouting/absolute-layout-impl.cpp @@ -99,6 +99,15 @@ void AbsoluteLayout::OnMeasure( MeasureSpec widthMeasureSpec, MeasureSpec height // Determine the width and height needed by the children using their given position and size. // Children could overlap so find the left most and right most child. auto childPosition = childOwner.GetProperty< Vector3 >( Actor::Property::POSITION ); + auto childSize = childOwner.GetProperty< Vector3 >( Actor::Property::SIZE ); + + // Check if there on going position or size animation and skip it to avoid legacy application regressions + if( childPosition != childOwner.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ) || + childSize != childOwner.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ) ) + { + break; + } + LayoutLength childLeft = childPosition.x; LayoutLength childTop = childPosition.y; @@ -158,6 +167,14 @@ void AbsoluteLayout::OnLayout( bool changed, LayoutLength left, LayoutLength top LayoutLength childHeight = childLayout->GetMeasuredHeight(); auto childPosition = childOwner.GetProperty< Vector3 >( Actor::Property::POSITION ); + auto childSize = childOwner.GetProperty< Vector3 >( Actor::Property::SIZE ); + + // Check if there on going position or size animation and skip it to avoid legacy application regressions + if( childPosition != childOwner.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ) || + childSize != childOwner.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ) ) + { + break; + } LayoutLength childTop = childPosition.y; LayoutLength childLeft = childPosition.x;