summaryrefslogtreecommitdiff
path: root/indra/newview/llnearbychathandler.cpp
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2009-10-12 08:20:00 +0000
committerSteven Bennetts <steve@lindenlab.com>2009-10-12 08:20:00 +0000
commit276e80ce367dd89d7f3b2882ff669d6b59b78c0c (patch)
tree79cc5cc69281cd89c668e3b9941cc7d92d53445f /indra/newview/llnearbychathandler.cpp
parentc2ddcfae49bb1b4794facd64de1c2ac62fdb5715 (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.cpp19
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;
}
}