diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp index 7d49a8d3441e5f9d51f68d71790d58963c547eab..b83534a26b0870f6429b0ce8248300ff5fa16af1 100644 --- a/indra/llxml/llcontrol.cpp +++ b/indra/llxml/llcontrol.cpp @@ -315,7 +315,10 @@ void LLControlVariable::resetToDefault(bool fire_signal) mValues.pop_back(); } - if(fire_signal) + // don't fire if the value didn't actually change + LLSD previous_value = getComparableValue(getValue()); + bool value_changed = (llsd_compare(originalValue, previous_value) == FALSE); + if(fire_signal && value_changed) { firePropertyChanged(originalValue); }