summaryrefslogtreecommitdiff
path: root/indra/newview/llsyswellwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llsyswellwindow.cpp')
-rwxr-xr-x[-rw-r--r--]indra/newview/llsyswellwindow.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index e92bd766ca..8babb874f8 100644..100755
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -107,8 +107,8 @@ void LLSysWellWindow::removeItemByID(const LLUUID& id)
}
else
{
- llwarns << "Unable to remove notification from the list, ID: " << id
- << llendl;
+ LL_WARNS() << "Unable to remove notification from the list, ID: " << id
+ << LL_ENDL;
}
// hide chiclet window if there are no items left
@@ -118,6 +118,11 @@ void LLSysWellWindow::removeItemByID(const LLUUID& id)
}
}
+ LLPanel * LLSysWellWindow::findItemByID(const LLUUID& id)
+{
+ return mMessageList->getItemByValue(id);
+}
+
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
void LLSysWellWindow::initChannel()
@@ -127,7 +132,7 @@ void LLSysWellWindow::initChannel()
mChannel = dynamic_cast<LLNotificationsUI::LLScreenChannel*>(channel);
if(NULL == mChannel)
{
- llwarns << "LLSysWellWindow::initChannel() - could not get a requested screen channel" << llendl;
+ LL_WARNS() << "LLSysWellWindow::initChannel() - could not get a requested screen channel" << LL_ENDL;
}
}
@@ -355,9 +360,9 @@ void LLNotificationWellWindow::addItem(LLSysWellItem::Params p)
}
else
{
- llwarns << "Unable to add Notification into the list, notification ID: " << p.notification_id
+ LL_WARNS() << "Unable to add Notification into the list, notification ID: " << p.notification_id
<< ", title: " << p.title
- << llendl;
+ << LL_ENDL;
new_item->die();
}
@@ -423,9 +428,18 @@ void LLNotificationWellWindow::onItemClick(LLSysWellItem* item)
void LLNotificationWellWindow::onItemClose(LLSysWellItem* item)
{
LLUUID id = item->getID();
- removeItemByID(id);
+
if(mChannel)
+ {
+ // removeItemByID() is invoked from killToastByNotificationID() and item will removed;
mChannel->killToastByNotificationID(id);
+ }
+ else
+ {
+ // removeItemByID() should be called one time for each item to remove it from notification well
+ removeItemByID(id);
+ }
+
}
void LLNotificationWellWindow::onAdd( LLNotificationPtr notify )
@@ -495,7 +509,7 @@ void LLIMWellWindow::addObjectRow(const LLUUID& notification_id, bool new_messag
ObjectRowPanel* item = new ObjectRowPanel(notification_id, new_message);
if (!mMessageList->addItem(item, notification_id))
{
- llwarns << "Unable to add Object Row into the list, notificationID: " << notification_id << llendl;
+ LL_WARNS() << "Unable to add Object Row into the list, notificationID: " << notification_id << LL_ENDL;
item->die();
}
reshapeWindow();
@@ -506,7 +520,7 @@ void LLIMWellWindow::removeObjectRow(const LLUUID& notification_id)
{
if (!mMessageList->removeItemByValue(notification_id))
{
- llwarns << "Unable to remove Object Row from the list, notificationID: " << notification_id << llendl;
+ LL_WARNS() << "Unable to remove Object Row from the list, notificationID: " << notification_id << LL_ENDL;
}
reshapeWindow();