diff options
| -rw-r--r-- | indra/newview/llnotificationhandler.h | 5 | ||||
| -rw-r--r-- | indra/newview/llnotificationhandlerutil.cpp | 19 | 
2 files changed, 19 insertions, 5 deletions
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 62daf5f105..62008b91a0 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -357,6 +357,11 @@ public:  	static void addNotifPanelToIM(const LLNotificationPtr& notification);  	/** +	 * Updates messages of IM floater. +	 */ +	static void updateIMFLoaterMesages(const LLUUID& session_id); + +	/**  	 * Updates messages of visible IM floater.  	 */  	static void updateVisibleIMFLoaterMesages(const LLNotificationPtr& notification); diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 5affd5c677..55e0f33121 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -252,6 +252,9 @@ void LLHandlerUtil::logToIM(const EInstantMessage& session_type,  		session->mNumUnread = unread;  		session->mParticipantUnreadMessageCount = participant_unread; +		// update IM floater messages +		updateIMFLoaterMesages(session_id); +  		// restore active session id  		if (active_session_id.isNull())  		{ @@ -415,12 +418,8 @@ void LLHandlerUtil::addNotifPanelToIM(const LLNotificationPtr& notification)  }  // static -void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notification) +void LLHandlerUtil::updateIMFLoaterMesages(const LLUUID& session_id)  { -	const std::string name = LLHandlerUtil::getSubstitutionName(notification); -	LLUUID from_id = notification->getPayload()["from_id"]; -	LLUUID session_id = spawnIMSession(name, from_id); -  	LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);  	if (im_floater != NULL && im_floater->getVisible())  	{ @@ -429,6 +428,16 @@ void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notif  }  // static +void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notification) +{ +	const std::string name = LLHandlerUtil::getSubstitutionName(notification); +	LLUUID from_id = notification->getPayload()["from_id"]; +	LLUUID session_id = spawnIMSession(name, from_id); + +	updateIMFLoaterMesages(session_id); +} + +// static  void LLHandlerUtil::decIMMesageCounter(const LLNotificationPtr& notification)  {  	const std::string name = LLHandlerUtil::getSubstitutionName(notification);  | 
