From 968ec06976f119d2c527c37289b5794ab36b7974 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Fri, 15 Dec 2017 14:54:13 +0900 Subject: [PATCH] [4.0] Fix screen position calulation in Actor Change-Id: Id8f153a670e72e35bb254426d0db030b457f1913 --- dali/internal/event/actors/actor-impl.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index d36e103..c83cb0c 100644 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -814,10 +814,13 @@ const Vector3& Actor::GetCurrentWorldPosition() const const Vector2 Actor::GetCurrentScreenPosition() const { - if( OnStage() && NULL != mNode ) + StagePtr stage = Stage::GetCurrent(); + if( stage && OnStage() && NULL != mNode ) { - StagePtr stage = Stage::GetCurrent(); Vector3 worldPosition = mNode->GetWorldPosition( GetEventThreadServices().GetEventBufferIndex() ); + Vector3 cameraPosition = stage->GetDefaultCameraActor().mNode->GetWorldPosition( GetEventThreadServices().GetEventBufferIndex() ); + worldPosition -= cameraPosition; + Vector3 actorSize = GetCurrentSize() * GetCurrentWorldScale(); Vector2 halfStageSize( stage->GetSize() * 0.5f ); // World position origin is center of stage Vector3 halfActorSize( actorSize * 0.5f ); -- 2.7.4