From 6a50342c6a4b6f65659719af7580a8cb34e28bf7 Mon Sep 17 00:00:00 2001
From: maksymsproductengine <maksymsproductengine@lindenlab.com>
Date: Wed, 9 Apr 2014 04:51:42 +0300
Subject: MAINT-3903 FIXED Instant message toasts and certain kinds of popups
 (ex. group invites) fail to display if an offline inventory offer was
 received before logging in: Backed out changeset: f7234f8fdce8: MAINT-3536
 new crash in XML_ParserFree.

---
 indra/newview/llchannelmanager.cpp | 50 ++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 27 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index fa23251d95..8b2d9e639f 100755
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -113,33 +113,29 @@ void LLChannelManager::onLoginCompleted()
 	}
 	else
 	{
-		// TODO: Seems this code leads to MAINT-3536 new crash in XML_ParserFree.
-		// Need to investigate this and fix possible problems with notifications in startup time
-		// Viewer can normally receive and show of postponed notifications about purchasing in marketplace on startup time.
-		// Other types of postponed notifications did not tested.
-		//// create a channel for the StartUp Toast
-		//LLScreenChannelBase::Params p;
-		//p.id = LLUUID(gSavedSettings.getString("StartUpChannelUUID"));
-		//p.channel_align = CA_RIGHT;
-		//mStartUpChannel = createChannel(p);
-
-		//if(!mStartUpChannel)
-		//{
-		//	onStartUpToastClose();
-		//}
-		//else
-		//{
-		//	gViewerWindow->getRootView()->addChild(mStartUpChannel);
-
-		//	// init channel's position and size
-		//	S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); 
-		//	S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
-		//	mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound);
-		//	mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4));
-
-		//	mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this));
-		//	mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime"));
-		//}
+		// create a channel for the StartUp Toast
+		LLScreenChannelBase::Params p;
+		p.id = LLUUID(gSavedSettings.getString("StartUpChannelUUID"));
+		p.channel_align = CA_RIGHT;
+		mStartUpChannel = createChannel(p);
+
+		if(!mStartUpChannel)
+		{
+			onStartUpToastClose();
+		}
+		else
+		{
+			gViewerWindow->getRootView()->addChild(mStartUpChannel);
+
+			// init channel's position and size
+			S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); 
+			S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
+			mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound);
+			mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4));
+
+			mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this));
+			mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime"));
+		}
 	}
 
 	LLPersistentNotificationStorage::getInstance()->loadNotifications();
-- 
cgit v1.2.3