diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h index 48a9f70079..4dda3de43e 100755 --- a/indra/newview/llfriendcard.h +++ b/indra/newview/llfriendcard.h @@ -96,10 +96,12 @@ private: */ const LLUUID extractAvatarID(const LLUUID& avatarID); +public: // Needed to check in LLOpenTaskOffer bool isAvatarDataStored(const LLUUID& avatarID) const { return (mBuddyIDSet.end() != mBuddyIDSet.find(avatarID)); } +private: // Needed to check in LLOpenTaskOffer const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const; const LLUUID& findFriendFolderUUIDImpl() const; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 5e7346ec42..fd59b9a3bc 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -140,6 +140,7 @@ #include "fswsassetblacklist.h" #include "llfloaterbump.h" #include "llfloaterreg.h" +#include "llfriendcard.h" #include "llgiveinventory.h" #include "lltexturefetch.h" #include "rlvactions.h" @@ -1129,6 +1130,17 @@ protected: LL_DEBUGS("Inventory_Move") << "Found asset UUID: " << asset_uuid << LL_ENDL; was_moved = true; } + // We might end up here if LLFriendCardsManager tries to sync the friend cards at login + // and that might pop up the inventory window for extra annoyance -> silence this! + else if (added_item->getActualType() == LLAssetType::AT_CALLINGCARD) + { + if (LLFriendCardsManager::instance().isAvatarDataStored(added_item->getCreatorUUID())) + { + LL_DEBUGS("FriendCard") << "Skipping added calling card from friend cards sync: " added_item->getCreatorUUID().asString() << LL_ENDL; + was_moved = true; + } + } + // } }