From 276e80ce367dd89d7f3b2882ff669d6b59b78c0c Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Mon, 12 Oct 2009 08:20:00 +0000 Subject: 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 --- indra/newview/llnearbychathandler.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'indra/newview/llnearbychathandler.cpp') 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 m_active_toasts; std::list 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; } } -- cgit v1.2.3