From: Agnelo Vaz Date: Fri, 15 Jul 2016 09:29:17 +0000 (+0100) Subject: Fixing Button so shows unselected color when set X-Git-Tag: dali_1.1.44~13^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=821b6ea8d459e86e59ddb1d5c7a1c480f2ee035c Fixing Button so shows unselected color when set Change-Id: Ida49da3ed342b5a04788dec05fb8a0af1ca201bb --- diff --git a/dali-toolkit/internal/controls/buttons/button-impl.cpp b/dali-toolkit/internal/controls/buttons/button-impl.cpp index fcd0468..af8cd5c 100644 --- a/dali-toolkit/internal/controls/buttons/button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/button-impl.cpp @@ -535,41 +535,46 @@ const Vector4 Button::GetUnselectedColor() const void Button::SetColor( const Vector4& color, Button::PaintState selectedState ) { - Actor& contentActor = mSelectedContent; + Actor* contentActor = NULL; // Using a pointer as SetupContent assigns the new Actor to this. bool imageFileExists = false; if ( selectedState == SelectedState || selectedState == DisabledSelectedState ) { mSelectedColor = color; + contentActor = &mSelectedContent; imageFileExists = !GetSelectedImageFilename().empty(); } else { mUnselectedColor = color; - contentActor = mUnselectedContent; + contentActor = &mUnselectedContent; imageFileExists = !GetUnselectedImageFilename().empty(); } - if( contentActor && imageFileExists ) + if ( contentActor ) { - // If there is existing unselected content, change the color on it directly. - contentActor.SetColor( color ); - } - else - { - // If there is no existing content, create a new actor to use for flat color. - Actor placementActor = Actor::New(); - Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); - Toolkit::ControlRenderer colorRenderer; - - Property::Map map; - map["rendererType"] = "color"; - map["mixColor"] = color; - - colorRenderer = rendererFactory.CreateControlRenderer( map ); - colorRenderer.SetOnStage( placementActor ); - SetupContent( contentActor, placementActor ); - contentActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + if( imageFileExists ) + { + // If there is existing unselected content, change the color on it directly. + contentActor->SetColor( color ); + } + else + { + // If there is no existing content, create a new actor to use for flat color. + Actor placementActor = Actor::New(); + Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); + Toolkit::ControlRenderer colorRenderer; + + Property::Map map; + map["rendererType"] = "color"; + map["mixColor"] = color; + + colorRenderer = rendererFactory.CreateControlRenderer( map ); + colorRenderer.SetOnStage( placementActor ); + + SetupContent( *contentActor, placementActor ); // + contentActor->SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + } } }