diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 13ee7bb003ff2e78ba38bc92d51dad85c60dbdb9..8d7865c8ba641c217f2b1a2da9424ba4bb15b6cc 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -718,11 +718,12 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/) bool identical_color = false; if(mColorSwatch) - { + { LLSelectedTE::getColor(color, identical_color); + LLColor4 prev_color = mColorSwatch->get(); mColorSwatch->setOriginal(color); - mColorSwatch->set(color, TRUE); + mColorSwatch->set(color, force_set_values || (prev_color != color) || !editable); mColorSwatch->setValid(editable); mColorSwatch->setEnabled( editable ); @@ -1318,8 +1319,12 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/) // if (!material->getSpecularID().isNull()) { - getChild<LLColorSwatchCtrl>("shinycolorswatch")->setOriginal(material->getSpecularLightColor()); - getChild<LLColorSwatchCtrl>("shinycolorswatch")->set(material->getSpecularLightColor(),TRUE); + LLColorSwatchCtrl* shiny_swatch = getChild<LLColorSwatchCtrl>("shinycolorswatch"); + LLColor4 new_color = material->getSpecularLightColor(); + LLColor4 old_color = shiny_swatch->get(); + + shiny_swatch->setOriginal(new_color); + shiny_swatch->set(new_color, force_set_values || old_color != new_color || !editable); } // Bumpy (normal)