X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.cpp;h=9f7294bcdb977251920d8754d83455e85be4ebd2;hb=33f6a623f309e8696d9e149e6ecf50a64e4cfddc;hp=76493a68a44d28277922ffdfc27b31794404064e;hpb=df4e976c9228a4ceeaa2622d86ad7b21e8eb65b8;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp index 76493a6..9f7294b 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -97,16 +97,23 @@ void ImageView::SetImage( Image image ) void ImageView::SetImage( Property::Map map ) { - mImage.Reset(); - mUrl.clear(); mPropertyMap = map; - mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap ); + bool newRendererCreated = false; + if( mRenderer ) + { + newRendererCreated = Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, mPropertyMap ); + } + else + { + mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap ); + newRendererCreated = true; + } //we need to inform any newly created renderers if it is on stage - if( Self().OnStage() ) + CustomActor self = Self(); + if( newRendererCreated && self.OnStage() ) { - CustomActor self = Self(); mRenderer.SetOnStage( self ); } @@ -215,6 +222,16 @@ void ImageView::OnStageConnection( int depth ) } } +void ImageView::OnStageDisconnection() +{ + if( mRenderer ) + { + CustomActor self = Self(); + mRenderer.SetOffStage( self ); + } +} + + /////////////////////////////////////////////////////////// // // Properties