diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp index 2a137cc39b8234d66e4d55bd40081972fbecd784..d3e66289d1a4f2b1efff1b5a01be693d53358ab3 100755 --- a/indra/newview/llattachmentsmgr.cpp +++ b/indra/newview/llattachmentsmgr.cpp @@ -421,6 +421,15 @@ void LLAttachmentsMgr::onDetachCompleted(const LLUUID& inv_item_id) mQuestionableCOFLinks.addTime(inv_item_id); } +bool LLAttachmentsMgr::isAttachmentStateComplete() const +{ + return mPendingAttachments.empty() + && mAttachmentRequests.empty() + && mDetachRequests.empty() + && mRecentlyArrivedAttachments.empty() + && mQuestionableCOFLinks.empty(); +} + // Check for attachments that are (a) linked in COF and (b) not // attached to the avatar. This is a rotten function to have to // include, because it runs the risk of either repeatedly spamming out diff --git a/indra/newview/llattachmentsmgr.h b/indra/newview/llattachmentsmgr.h index fab146cb52522f1863a46632bbd4b6f549b33648..bb7d35edbcb740fab527b167831093b0f2a9acb5 100755 --- a/indra/newview/llattachmentsmgr.h +++ b/indra/newview/llattachmentsmgr.h @@ -87,10 +87,7 @@ class LLAttachmentsMgr: public LLSingleton<LLAttachmentsMgr> void onDetachRequested(const LLUUID& inv_item_id); void onDetachCompleted(const LLUUID& inv_item_id); - bool hasPendingAttachments() { return mPendingAttachments.size() > 0; } - bool hasAttachmentRequests() { return mAttachmentRequests.size() > 0; } - bool hasDetachRequests() { return mAttachmentRequests.size() > 0; } - bool hasRecentlyArrivedAttachments() { return mRecentlyArrivedAttachments.size() > 0; } + bool isAttachmentStateComplete() const; private: diff --git a/indra/newview/llavatarrendernotifier.cpp b/indra/newview/llavatarrendernotifier.cpp index ca3c1a73106e02259d3ea8f032195169841f8b1c..53be573461e8f5756717c27061d1f04ea8b7801a 100644 --- a/indra/newview/llavatarrendernotifier.cpp +++ b/indra/newview/llavatarrendernotifier.cpp @@ -191,9 +191,7 @@ void LLAvatarRenderNotifier::updateNotificationState() if (mInitialCofVersion < 0 && gAgentWearables.areWearablesLoaded() - && !LLAttachmentsMgr::getInstance()->hasPendingAttachments() - && !LLAttachmentsMgr::getInstance()->hasAttachmentRequests() - && !LLAttachmentsMgr::getInstance()->hasRecentlyArrivedAttachments()) + && LLAttachmentsMgr::getInstance()->isAttachmentStateComplete()) { // cof formed mInitialCofVersion = LLAppearanceMgr::instance().getCOFVersion(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 3e20fbecdbd4d97ccf1d1d8f1b62eb67e1f7ad74..da02b96f807148369d1fbe36c0f0b8f73b8c07f1 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -6458,7 +6458,7 @@ BOOL LLVOAvatar::processFullyLoadedChange(bool loading) mFullyLoadedInitialized = TRUE; mFullyLoadedFrameCounter++; - if (isSelf()) + if (changed && isSelf()) { // to know about outfit switching LLAvatarRenderNotifier::getInstance()->updateNotificationState();