X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Factors%2Factor-impl.cpp;h=62470004032defcb2160d6d94c117a5fd3021451;hb=b30fb20d595124f8e7302acd6b9cc9d89d4310a5;hp=1057dea6bf2faf5ac903c907fabcb5c0a26cc0b4;hpb=3d321b256f0799b1683d9d23fabb8bfd612d3bd9;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index 1057dea..6247000 100644 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -758,6 +758,18 @@ void Actor::SetSizeInternal(const Vector3& size) { mTargetSize = size; + // Update the preferred size after relayoutting + // It should be used in the next relayoutting + if(mUseAnimatedSize & AnimatedSizeFlag::WIDTH && mRelayoutData) + { + mRelayoutData->preferredSize.width = mAnimatedSize.width; + } + + if(mUseAnimatedSize & AnimatedSizeFlag::HEIGHT && mRelayoutData) + { + mRelayoutData->preferredSize.height = mAnimatedSize.height; + } + // node is being used in a separate thread; queue a message to set the value & base value SceneGraph::NodeTransformPropertyMessage::Send(GetEventThreadServices(), &GetNode(), &GetNode().mSize, &SceneGraph::TransformManagerPropertyHandler::Bake, mTargetSize); @@ -2064,6 +2076,8 @@ void Actor::SetNegotiatedSize(RelayoutContainer& container) Dali::Actor handle(this); mOnRelayoutSignal.Emit(handle); } + + mRelayoutData->relayoutRequested = false; } void Actor::NegotiateSize(const Vector2& allocatedSize, RelayoutContainer& container) @@ -2091,6 +2105,11 @@ void Actor::RelayoutRequest(Dimension::Type dimension) { Dali::Actor self(this); relayoutController->RequestRelayout(self, dimension); + + if(mRelayoutData) + { + mRelayoutData->relayoutRequested = true; + } } }