From 0c828289c04a9783eab72d2e9f77903f96f2bc62 Mon Sep 17 00:00:00 2001
From: Alexei Arabadji <aarabadji@productengine.com>
Date: Mon, 30 Nov 2009 18:15:09 +0200
Subject: [PATCH] renamed LLHandlerUtil::logToIM to LLHandlerUtil::logToIMP2P;
 avoided IM-toast popup when adding message to session;

--HG--
branch : product-engine
---
 indra/newview/llnotificationhandler.h         |  2 +-
 indra/newview/llnotificationhandlerutil.cpp   | 15 +++++++++++++--
 indra/newview/llnotificationofferhandler.cpp  |  2 +-
 indra/newview/llnotificationscripthandler.cpp |  2 +-
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index d42b0148d61..b561f795f5d 100644
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
@@ -268,7 +268,7 @@ class LLHandlerUtil
 	/**
 	 * Writes notification message to IM session.
 	 */
-	static void logToIM(const LLNotificationPtr& notification);
+	static void logToIMP2P(const LLNotificationPtr& notification);
 };
 
 }
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index e1236b935ee..112d8295631 100644
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
@@ -52,7 +52,7 @@ bool LLHandlerUtil::canLogToIM(const LLNotificationPtr& notification)
 }
 
 // static
-void LLHandlerUtil::logToIM(const LLNotificationPtr& notification)
+void LLHandlerUtil::logToIMP2P(const LLNotificationPtr& notification)
 {
 	// add message to IM
 	const std::string
@@ -82,7 +82,18 @@ void LLHandlerUtil::logToIM(const LLNotificationPtr& notification)
 			return;
 		}
 
-		LLIMModel::instance().addMessageSilently(*session, name, from_id,
+
+		// store active session id
+		const LLUUID & active_session_id =
+				LLIMModel::instance().getActiveSessionID();
+
+		// set created session as active to avoid IM toast popup
+		LLIMModel::instance().setActiveSessionID(session->mSessionID);
+
+		LLIMModel::instance().addMessage(session->mSessionID, name, from_id,
 				notification->getMessage());
+
+		// restore active session id
+		LLIMModel::instance().setActiveSessionID(active_session_id);
 	}
 }
diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp
index cfe7fd09ac1..c179a2cf90a 100644
--- a/indra/newview/llnotificationofferhandler.cpp
+++ b/indra/newview/llnotificationofferhandler.cpp
@@ -90,7 +90,7 @@ bool LLOfferHandler::processNotification(const LLSD& notify)
 
 	if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change")
 	{
-		LLHandlerUtil::logToIM(notification);
+		LLHandlerUtil::logToIMP2P(notification);
 
 		LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification);
 
diff --git a/indra/newview/llnotificationscripthandler.cpp b/indra/newview/llnotificationscripthandler.cpp
index 6f91b6e58b4..c7261199e3c 100644
--- a/indra/newview/llnotificationscripthandler.cpp
+++ b/indra/newview/llnotificationscripthandler.cpp
@@ -98,7 +98,7 @@ bool LLScriptHandler::processNotification(const LLSD& notify)
 	{
 		if (LLHandlerUtil::canLogToIM(notification))
 		{
-			LLHandlerUtil::logToIM(notification);
+			LLHandlerUtil::logToIMP2P(notification);
 		}
 
 		if(SCRIPT_DIALOG == notification->getName() || SCRIPT_DIALOG_GROUP == notification->getName() || SCRIPT_LOAD_URL == notification->getName())
-- 
GitLab