From 6a50342c6a4b6f65659719af7580a8cb34e28bf7 Mon Sep 17 00:00:00 2001 From: maksymsproductengine 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/newview/llchannelmanager.cpp') 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