summaryrefslogtreecommitdiff
path: root/indra/newview/lloutfitobserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lloutfitobserver.cpp')
-rw-r--r--indra/newview/lloutfitobserver.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/lloutfitobserver.cpp b/indra/newview/lloutfitobserver.cpp
index 848b595613..5652a98981 100644
--- a/indra/newview/lloutfitobserver.cpp
+++ b/indra/newview/lloutfitobserver.cpp
@@ -56,9 +56,9 @@ void LLOutfitObserver::changed(U32 mask)
if (!gInventory.isInventoryUsable())
return;
- bool panel_updated = checkCOF();
+ bool COF_changed = checkCOF();
- if (!panel_updated)
+ if (!COF_changed)
{
checkBaseOutfit();
}
@@ -87,6 +87,7 @@ bool LLOutfitObserver::checkCOF()
mCOFLastVersion = cof_version;
+ // dirtiness state should be updated before sending signal
LLAppearanceMgr::getInstance()->updateIsDirty();
mCOFChanged();
@@ -120,6 +121,16 @@ void LLOutfitObserver::checkBaseOutfit()
}
LLAppearanceMgr& app_mgr = LLAppearanceMgr::instance();
+ // dirtiness state should be updated before sending signal
app_mgr.updateIsDirty();
mBOFChanged();
+
+ if (mLastOutfitDirtiness != app_mgr.isOutfitDirty())
+ {
+ if(!app_mgr.isOutfitDirty())
+ {
+ mCOFSaved();
+ }
+ mLastOutfitDirtiness = app_mgr.isOutfitDirty();
+ }
}