SL-16184 FIXED Frame stall when friend comes online.

master
Mnikolenko Productengine 2021-10-20 14:53:55 +03:00
parent d2dce17803
commit 6ecf8f2c01
6 changed files with 21 additions and 19 deletions

View File

@ -257,7 +257,6 @@ S32 LLAvatarTracker::addBuddyList(const LLAvatarTracker::buddy_map_t& buds)
LLAvatarName av_name;
LLAvatarNameCache::get(agent_id, &av_name);
addChangedMask(LLFriendObserver::ADD, agent_id);
LL_DEBUGS() << "Added buddy " << agent_id
<< ", " << (mBuddyInfo[agent_id]->isOnline() ? "Online" : "Offline")
<< ", TO: " << mBuddyInfo[agent_id]->getRightsGrantedTo()
@ -493,6 +492,7 @@ void LLAvatarTracker::notifyObservers()
// new masks and ids will be processed later from idle.
return;
}
LL_PROFILE_ZONE_SCOPED
mIsNotifyObservers = TRUE;
observer_list_t observers(mObservers);
@ -678,6 +678,7 @@ void LLAvatarTracker::processChangeUserRights(LLMessageSystem* msg, void**)
void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
{
LL_PROFILE_ZONE_SCOPED
S32 count = msg->getNumberOfBlocksFast(_PREHASH_AgentBlock);
BOOL chat_notify = gSavedSettings.getBOOL("ChatOnlineNotification");
@ -712,8 +713,6 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
// we were tracking someone who went offline
deleteTrackingData();
}
// *TODO: get actual inventory id
gInventory.addChangedMask(LLInventoryObserver::CALLING_CARD, LLUUID::null);
}
if(chat_notify)
{

View File

@ -1229,7 +1229,6 @@ LLIMModel::LLIMSession* LLIMModel::addMessageSilently(const LLUUID& session_id,
if (!session)
{
LL_WARNS() << "session " << session_id << "does not exist " << LL_ENDL;
return NULL;
}

View File

@ -5714,14 +5714,14 @@ class LLCallingCardObserver : public LLFriendObserver
public:
LLCallingCardObserver(LLCallingCardBridge* bridge) : mBridgep(bridge) {}
virtual ~LLCallingCardObserver() { mBridgep = NULL; }
virtual void changed(U32 mask)
{
mBridgep->refreshFolderViewItem();
if (mask & LLFriendObserver::ONLINE)
{
mBridgep->checkSearchBySuffixChanges();
}
}
virtual void changed(U32 mask)
{
if (mask & LLFriendObserver::ONLINE)
{
mBridgep->refreshFolderViewItem();
mBridgep->checkSearchBySuffixChanges();
}
}
protected:
LLCallingCardBridge* mBridgep;
};
@ -5735,14 +5735,15 @@ LLCallingCardBridge::LLCallingCardBridge(LLInventoryPanel* inventory,
const LLUUID& uuid ) :
LLItemBridge(inventory, root, uuid)
{
mObserver = new LLCallingCardObserver(this);
LLAvatarTracker::instance().addObserver(mObserver);
mObserver = new LLCallingCardObserver(this);
LLAvatarTracker::instance().addParticularFriendObserver(getItem()->getCreatorUUID(), mObserver);
}
LLCallingCardBridge::~LLCallingCardBridge()
{
LLAvatarTracker::instance().removeObserver(mObserver);
delete mObserver;
LLAvatarTracker::instance().removeParticularFriendObserver(getItem()->getCreatorUUID(), mObserver);
delete mObserver;
}
void LLCallingCardBridge::refreshFolderViewItem()

View File

@ -69,7 +69,8 @@ void LLScriptHandler::initChannel()
//--------------------------------------------------------------------------
void LLScriptHandler::addToastWithNotification(const LLNotificationPtr& notification)
{
LLToastPanel* notify_box = LLToastPanel::buidPanelFromNotification(notification);
LL_PROFILE_ZONE_SCOPED
LLToastPanel* notify_box = LLToastPanel::buidPanelFromNotification(notification);
LLToast::Params p;
p.notif_id = notification->getID();

View File

@ -259,7 +259,8 @@ void LLScreenChannel::updatePositionAndSize(LLRect new_world_rect)
//--------------------------------------------------------------------------
void LLScreenChannel::addToast(const LLToast::Params& p)
{
bool store_toast = false, show_toast = false;
LL_PROFILE_ZONE_SCOPED
bool store_toast = false, show_toast = false;
if (mDisplayToastsAlways)
{

View File

@ -114,7 +114,8 @@ void LLToastPanel::snapToMessageHeight(LLTextBase* message, S32 maxLineCount)
LLToastPanel* LLToastPanel::buidPanelFromNotification(
const LLNotificationPtr& notification)
{
LLToastPanel* res = NULL;
LL_PROFILE_ZONE_SCOPED
LLToastPanel* res = NULL;
//process tip toast panels
if ("notifytip" == notification->getType())