diff options
| author | Seth ProductEngine <slitovchuk@productengine.com> | 2012-04-12 23:09:47 +0300 |
|---|---|---|
| committer | Seth ProductEngine <slitovchuk@productengine.com> | 2012-04-12 23:09:47 +0300 |
| commit | dd012cc375680c1907e16baa675d29d40ad4f43c (patch) | |
| tree | 362e9d81ea18d1f041090ced8fd7ef34429ccdb1 /indra/newview/llnearbychathandler.cpp | |
| parent | 7ef7bbef65d8622668bc8a007766f25a70386d27 (diff) | |
CHUI-87 FIXED crash in handling notifications after viewer disconnect.
Notification handlers now use LLHandles to screen channels.
Diffstat (limited to 'indra/newview/llnearbychathandler.cpp')
| -rw-r--r-- | indra/newview/llnearbychathandler.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index 240a7c7a35..600fd395fb 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -458,7 +458,9 @@ LLNearbyChatHandler::LLNearbyChatHandler(e_notification_type type, const LLSD& i channel->setCreatePanelCallback(callback); - mChannel = LLChannelManager::getInstance()->addChannel(channel); + LLChannelManager::getInstance()->addChannel(channel); + + mChannel = channel->getHandle(); } LLNearbyChatHandler::~LLNearbyChatHandler() @@ -558,11 +560,12 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, && nearby_chat->isInVisibleChain() || ( chat_msg.mSourceType == CHAT_SOURCE_AGENT && gSavedSettings.getBOOL("UseChatBubbles") ) - || !mChannel->getShowToasts() ) // to prevent toasts in Busy mode + || mChannel.isDead() + || !mChannel.get()->getShowToasts() ) // to prevent toasts in Busy mode return;//no need in toast if chat is visible or if bubble chat is enabled // arrange a channel on a screen - if(!mChannel->getVisible()) + if(!mChannel.get()->getVisible()) { initChannel(); } @@ -579,7 +582,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, } */ - LLNearbyChatScreenChannel* channel = dynamic_cast<LLNearbyChatScreenChannel*>(mChannel); + LLNearbyChatScreenChannel* channel = dynamic_cast<LLNearbyChatScreenChannel*>(mChannel.get()); if(channel) { |
