X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.cpp;h=47a12b1e213acb1a570e9a21d23d1711a6331204;hb=149fa4a2bd6765eef1601be6957c6f608876be38;hp=cba530868079bc99971b7ebbc273a300fa095aa6;hpb=d9a5a0e168ee7978fcea370cd3a3618e50f6b579;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git 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 );