From a05cf60f33b96c7baf3a749b2af24f187cf9ea85 Mon Sep 17 00:00:00 2001 From: Seoyeon Kim Date: Tue, 21 Nov 2017 13:47:27 +0900 Subject: [PATCH] Fix the child position when Parent sets Padding Change-Id: I40015356186292f42ec2358fdfc1346623d2884e Signed-off-by: Seoyeon Kim --- dali-toolkit/public-api/controls/control-impl.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index cba5308..47a12b1 100755 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -657,11 +657,13 @@ void Control::OnRelayout( const Vector2& size, RelayoutContainer& container ) newChildSize.width = size.width - ( padding.start + padding.end ); newChildSize.height = size.height - ( padding.top + padding.bottom ); - Vector3 childPosition = child.GetTargetSize(); - childPosition.x += ( mImpl->mMargin.start + padding.start ); - childPosition.y += ( mImpl->mMargin.top + padding.top ); + // Cannot use childs Position property as it can already have padding and margin applied on it, + // so we end up cumulatively applying them over and over again. + Vector2 childOffset( 0.f, 0.f ); + childOffset.x += ( mImpl->mMargin.start + padding.start ); + childOffset.y += ( mImpl->mMargin.top + padding.top ); - child.SetPosition( childPosition ); + child.SetPosition( childOffset.x, childOffset.y ); } container.Add( child, newChildSize ); -- 2.7.4