From 79ea2753a3d60c8d1ca9f2adbdc0aff005109252 Mon Sep 17 00:00:00 2001 From: Anton Obzhirov Date: Thu, 6 Dec 2018 15:18:23 +0000 Subject: [PATCH] [5.0] Workaround in AbsoluteLayout for animation bug in legacy application. Change-Id: I0c1deadbc2cd1a53191ed7c1f7516170b8059cb4 --- .../internal/layouting/absolute-layout-impl.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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; -- 2.7.4