From: Ferran Sole Date: Mon, 15 Jun 2015 09:44:57 +0000 (+0100) Subject: Fix for Control::GetNaturalSize() X-Git-Tag: dali_1.0.47~13^2~14 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=refs%2Fchanges%2F43%2F41443%2F2 Fix for Control::GetNaturalSize() Control will now return background image size if there is one or Vector3::ZERO otherwise. Change-Id: I8480964ffbe2049e53ccf8ebb0103cceeb9caa49 --- diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 1d1e5b0..5d9880b 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -1073,15 +1073,23 @@ void Control::OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dime Vector3 Control::GetNaturalSize() { + //Control's natural size is the size of its background image if it has been set, or ZERO otherwise + Vector3 naturalSize = Vector3::ZERO; if( mImpl->mBackground ) { - Actor actor = mImpl->mBackground->actor; - if( actor ) + Material backgroundMaterial = mImpl->mBackground->actor.GetRendererAt(0).GetMaterial(); + if( backgroundMaterial.GetNumberOfSamplers() > 0 ) { - return actor.GetNaturalSize(); + Image backgroundImage = backgroundMaterial.GetSamplerAt(0).GetImage(); + if( backgroundImage ) + { + naturalSize.x = backgroundImage.GetWidth(); + naturalSize.y = backgroundImage.GetHeight(); + } } } - return Vector3(); + + return naturalSize; } float Control::CalculateChildSize( const Dali::Actor& child, Dimension::Type dimension )