From 27900ebb0cb19bd55874f152ae6dc8fc19ecc35c Mon Sep 17 00:00:00 2001 From: "huiyu.eun" Date: Tue, 20 Nov 2018 11:49:30 +0900 Subject: [PATCH] Fix z value issue Change-Id: I9d3f72e5001cdf9ef81a8d30d0e9ee9733790e0a Signed-off-by: huiyu.eun --- .../src/dali-toolkit/utc-Dali-AbsoluteLayout.cpp | 41 +++++++++++++++++++++- .../internal/layouting/layout-controller-impl.cpp | 14 +++++--- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AbsoluteLayout.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AbsoluteLayout.cpp index 395e8f9..98ea974 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AbsoluteLayout.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AbsoluteLayout.cpp @@ -69,7 +69,6 @@ int UtcDaliLayouting_AbsoluteLayoutAssignment(void) END_TEST; } - int UtcDaliLayouting_AbsoluteLayout01(void) { ToolkitTestApplication application; @@ -120,3 +119,43 @@ int UtcDaliLayouting_AbsoluteLayout01(void) END_TEST; } + +int UtcDaliLayouting_AbsoluteLayout_SetPosition(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliLayouting_AbsoluteLayout_GetWorldPosition - Testing WorldPosition"); + + Stage stage = Stage::GetCurrent(); + + Dali::Toolkit::Control layoutControl = Dali::Toolkit::Control::New(); + layoutControl.SetName("AsoluteLayout"); + layoutControl.SetAnchorPoint( Dali::AnchorPoint::CENTER ); + layoutControl.SetParentOrigin( Dali::ParentOrigin::CENTER ); + + Dali::Toolkit::AbsoluteLayout absoluteLayout = Dali::Toolkit::AbsoluteLayout::New(); + Dali::Toolkit::DevelControl::SetLayout( layoutControl, absoluteLayout ); + + stage.GetRootLayer().Add( layoutControl ); + + // Ensure layouting happens + application.SendNotification(); + application.Render(0); + + Dali::Toolkit::Control control = Dali::Toolkit::Control::New(); + control.SetSize( 100.0f, 100.0f ); + control.SetParentOrigin( ParentOrigin::CENTER ); + control.SetAnchorPoint( AnchorPoint::CENTER ); + Vector3 parentPosition( 1.0f, 2.0f, 3.0f ); + control.SetPosition( parentPosition ); + + layoutControl.Add( control ); + + // Ensure layouting happens + application.SendNotification(); + application.Render(0); + + // The value of z should not be zero + DALI_TEST_EQUALS( control.GetCurrentPosition(), parentPosition, TEST_LOCATION ); + + END_TEST; +} diff --git a/dali-toolkit/internal/layouting/layout-controller-impl.cpp b/dali-toolkit/internal/layouting/layout-controller-impl.cpp index 9d0b947..b0637b3 100644 --- a/dali-toolkit/internal/layouting/layout-controller-impl.cpp +++ b/dali-toolkit/internal/layouting/layout-controller-impl.cpp @@ -347,13 +347,19 @@ void LayoutController::PerformLayoutPositioning( LayoutPositionDataArray& layout { if( !layoutPositionData.animated ) { - actor.SetPosition( layoutPositionData.left, layoutPositionData.top ); - actor.SetSize( layoutPositionData.right - layoutPositionData.left, layoutPositionData.bottom - layoutPositionData.top ); + actor.SetX( layoutPositionData.left ); + actor.SetY( layoutPositionData.top ); + + actor.SetProperty( Actor::Property::SIZE_WIDTH, layoutPositionData.right - layoutPositionData.left ); + actor.SetProperty( Actor::Property::SIZE_HEIGHT, layoutPositionData.bottom - layoutPositionData.top ); } else { - actor.SetPosition( actor.GetCurrentPosition() ); - actor.SetSize( actor.GetCurrentSize() ); + actor.SetX( actor.GetCurrentPosition().x ); + actor.SetY( actor.GetCurrentPosition().y ); + + actor.SetProperty( Actor::Property::SIZE_WIDTH, actor.GetCurrentSize().x ); + actor.SetProperty( Actor::Property::SIZE_HEIGHT, actor.GetCurrentSize().y ); } } } -- 2.7.4