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