Merge "Ensure ImageView updates mVisual once ready/loaded" into devel/master
authorDavid Steele <david.steele@samsung.com>
Fri, 4 Aug 2017 13:49:14 +0000 (13:49 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Fri, 4 Aug 2017 13:49:14 +0000 (13:49 +0000)
dali-toolkit/internal/controls/image-view/image-view-impl.cpp

index 7934109..491e697 100644 (file)
@@ -117,6 +117,8 @@ void ImageView::SetImage( const Property::Map& map )
   mPropertyMap = map;
   mUrl.clear();
   mImage.Reset();
+  mRelayoutRequired = true;
+
   Toolkit::Visual::Base visual =  Toolkit::VisualFactory::Get().CreateVisual( mPropertyMap );
   // Don't set mVisual until it is ready and shown. Getters will still use current visual.
   if (!mVisual)
@@ -133,6 +135,7 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size )
   mUrl = url;
   mImage.Reset();
   mPropertyMap.Clear();
+  mRelayoutRequired = true;
 
   // Don't set mVisual until it is ready and shown. Getters will still use current visual.
   Toolkit::Visual::Base visual =  Toolkit::VisualFactory::Get().CreateVisual( url, size );
@@ -228,6 +231,9 @@ void ImageView::OnRelayout( const Vector2& size, RelayoutContainer& container )
 
 void ImageView::OnResourceReady( Toolkit::Control control )
 {
+  // Visual ready so update visual attached to this ImageView, following call to RelayoutRequest will use this visual.
+  mVisual = DevelControl::GetVisual( *this, Toolkit::ImageView::Property::IMAGE );
+
   if( mRelayoutRequired)
   {
     mRelayoutRequired = false;