diff options
author | Steven Bennetts <steve@lindenlab.com> | 2009-10-12 08:20:00 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2009-10-12 08:20:00 +0000 |
commit | 276e80ce367dd89d7f3b2882ff669d6b59b78c0c (patch) | |
tree | 79cc5cc69281cd89c668e3b9941cc7d92d53445f /indra/newview/llnearbychathandler.cpp | |
parent | c2ddcfae49bb1b4794facd64de1c2ac62fdb5715 (diff) |
merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1967 https://svn.aws.productengine.com/secondlife/pe/stable-2@1971 -> viewer-2.0.0-3
* Bugs: EXT-1431 EXT-1237 EXT-1151 EXT-1165 EXT-1410 EXT-1419
* Dev: EXT-1232
Diffstat (limited to 'indra/newview/llnearbychathandler.cpp')
-rw-r--r-- | indra/newview/llnearbychathandler.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index 3c5e588128..59b19b6dcb 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -61,7 +61,7 @@ LLToastPanelBase* createToastPanel() class LLNearbyChatScreenChannel: public LLScreenChannelBase { public: - LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mActiveMessages = 0;}; + LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mStopProcessing = false;}; void init (S32 channel_left, S32 channel_right); @@ -100,6 +100,13 @@ public: m_active_toasts.clear(); }; + virtual void deleteAllChildren() + { + m_toast_pool.clear(); + m_active_toasts.clear(); + LLScreenChannelBase::deleteAllChildren(); + } + protected: void createOverflowToast(S32 bottom, F32 timer); @@ -110,7 +117,7 @@ protected: std::vector<LLToast*> m_active_toasts; std::list<LLToast*> m_toast_pool; - S32 mActiveMessages; + bool mStopProcessing; }; void LLNearbyChatScreenChannel::init(S32 channel_left, S32 channel_right) @@ -129,6 +136,7 @@ void LLNearbyChatScreenChannel::createOverflowToast(S32 bottom, F32 timer) void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast) { + mStopProcessing = true; } void LLNearbyChatScreenChannel::onToastFade(LLToast* toast) @@ -168,7 +176,8 @@ bool LLNearbyChatScreenChannel::createPoolToast() void LLNearbyChatScreenChannel::addNotification(LLSD& notification) { //look in pool. if there is any message - + if(mStopProcessing) + return; if(m_toast_pool.empty()) { @@ -211,6 +220,9 @@ void LLNearbyChatScreenChannel::arrangeToasts() void LLNearbyChatScreenChannel::showToastsBottom() { + if(mStopProcessing) + return; + LLRect toast_rect; S32 bottom = getRect().mBottom; S32 margin = gSavedSettings.getS32("ToastMargin"); @@ -239,7 +251,6 @@ void LLNearbyChatScreenChannel::showToastsBottom() toast->setRect(toast_rect); toast->setVisible(TRUE); - toast->stopTimer(); bottom = toast->getRect().mTop; } } |