summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-06-19 15:05:20 -0700
committerMerov Linden <merov@lindenlab.com>2012-06-19 15:05:20 -0700
commitc0842339e72b15331a5bbb6bd41324c28916d678 (patch)
tree080dcbd5fc189e54933eaeee8bfbcbae09d92591 /indra
parent3af9d7c0535c8d94b194952c98196bac1d8c3dda (diff)
CHUI-138 : Suppress chiclets for conversations when using tabbed UI; Make sure list is cleaned up on close
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llchicletbar.cpp9
-rw-r--r--indra/newview/llimfloater.cpp20
2 files changed, 18 insertions, 11 deletions
diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp
index 8701b602ce..54a49ca49c 100644
--- a/indra/newview/llchicletbar.cpp
+++ b/indra/newview/llchicletbar.cpp
@@ -102,6 +102,13 @@ void LLChicletBar::sessionAdded(const LLUUID& session_id, const std::string& nam
// no need to spawn chiclets for participants in P2P calls called through Avaline
if (session->isP2P() && session->isOtherParticipantAvaline()) return;
+ // Do not spawn chiclet when using the new multitab conversation UI
+ if (LLIMConversation::isChatMultiTab())
+ {
+ LLIMFloater::addToHost(session_id);
+ return;
+ }
+
if (getChicletPanel()->findChiclet<LLChiclet>(session_id)) return;
LLIMChiclet* chiclet = createIMChiclet(session_id);
@@ -109,7 +116,7 @@ void LLChicletBar::sessionAdded(const LLUUID& session_id, const std::string& nam
{
chiclet->setIMSessionName(name);
chiclet->setOtherParticipantId(other_participant_id);
-
+
LLIMFloater::onIMChicletCreated(session_id);
}
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 882637151d..4b954de738 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -109,6 +109,16 @@ void LLIMFloater::onFocusReceived()
// virtual
void LLIMFloater::onClose(bool app_quitting)
{
+ // Always suppress the IM from the conversations list on close if present for any reason
+ if (LLIMConversation::isChatMultiTab())
+ {
+ LLIMFloaterContainer* im_box = LLIMFloaterContainer::findInstance();
+ if (im_box)
+ {
+ im_box->removeConversationListItem(mSessionID);
+ }
+ }
+
LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(
mSessionID);
@@ -140,16 +150,6 @@ void LLIMFloater::onClose(bool app_quitting)
// Last change:
// EXT-3516 X Button should end IM session, _ button should hide
gIMMgr->leaveSession(mSessionID);
-
- // Suppress the IM from the conversations list
- if (LLIMConversation::isChatMultiTab())
- {
- LLIMFloaterContainer* im_box = LLIMFloaterContainer::findInstance();
- if (im_box)
- {
- im_box->removeConversationListItem(mSessionID);
- }
- }
}
/* static */