summaryrefslogtreecommitdiff
path: root/indra/newview/llchannelmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llchannelmanager.cpp')
-rw-r--r--indra/newview/llchannelmanager.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 91945038aa..57ea6064a4 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -62,7 +62,10 @@ void LLChannelManager::onLoginCompleted()
for(std::vector<ChannelElem>::iterator it = mChannelList.begin(); it != mChannelList.end(); ++it)
{
- away_notifications +=(*it).channel->getNumberOfHiddenToasts();
+ if(!(*it).channel->getDisplayToastsAlways())
+ {
+ away_notifications +=(*it).channel->getNumberOfHiddenToasts();
+ }
}
if(!away_notifications)
@@ -95,6 +98,11 @@ void LLChannelManager::removeStartUpChannel()
getRootView()->removeChild(mStartUpChannel);
delete mStartUpChannel;
mStartUpChannel = NULL;
+
+ //force NEARBY CHAT CHANNEL to repost all toasts if present
+ LLScreenChannel* nearby_channel = getChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID")));
+ nearby_channel->loadStoredToastsToChannel();
+ nearby_channel->setCanStoreToasts(false);
}
//--------------------------------------------------------------------------
@@ -118,6 +126,7 @@ LLScreenChannel* LLChannelManager::createChannel(LLChannelManager::Params& p)
getRootView()->addChild(new_channel);
new_channel->init(p.channel_right_bound - p.channel_width, p.channel_right_bound);
new_channel->setToastAlignment(p.align);
+ new_channel->setDisplayToastsAlways(p.display_toasts_always);
ChannelElem new_elem;
new_elem.id = p.id;