diff --git a/indra/newview/fsfloatercontacts.cpp b/indra/newview/fsfloatercontacts.cpp index 16a6056cd4..c0d37722f1 100644 --- a/indra/newview/fsfloatercontacts.cpp +++ b/indra/newview/fsfloatercontacts.cpp @@ -89,7 +89,8 @@ FSFloaterContacts::FSFloaterContacts(const LLSD& seed) mAllowRightsChange(TRUE), mNumRightsChanged(0), mRlvBehaviorCallbackConnection(), - mResetLastColumnDisplayModeChanged(false) + mResetLastColumnDisplayModeChanged(false), + mDirtyNames(false) { mObserver = new LLLocalFriendsObserver(this); LLAvatarTracker::instance().addObserver(mObserver); @@ -173,6 +174,12 @@ void FSFloaterContacts::draw() mResetLastColumnDisplayModeChanged = false; } + if (mDirtyNames) + { + onDisplayNameChanged(); + mDirtyNames = false; + } + LLFloater::draw(); } @@ -1173,7 +1180,7 @@ void FSFloaterContacts::onDisplayNameChanged() } else { - LLAvatarNameCache::get((*it)->getUUID(), boost::bind(&FSFloaterContacts::onDisplayNameChanged, this)); + LLAvatarNameCache::get((*it)->getUUID(), boost::bind(&FSFloaterContacts::setDirtyNames, this)); } } } diff --git a/indra/newview/fsfloatercontacts.h b/indra/newview/fsfloatercontacts.h index 4e03a55cc1..ba43ea18f1 100644 --- a/indra/newview/fsfloatercontacts.h +++ b/indra/newview/fsfloatercontacts.h @@ -151,6 +151,7 @@ private: std::string mLastColumnDisplayModeChanged; bool mResetLastColumnDisplayModeChanged; + bool mDirtyNames; void childShowTab(const std::string& id, const std::string& tabname); @@ -158,6 +159,8 @@ private: boost::signals2::connection mRlvBehaviorCallbackConnection; std::string getFullName(const LLAvatarName& av_name); + + void setDirtyNames() { mDirtyNames = true; } };