summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2012-12-18 18:15:28 -0800
committerGilbert Gonzales <gilbert@lindenlab.com>2012-12-18 18:15:28 -0800
commit13a619cb5fc8da621d4e7becbf95ca2a8014deb3 (patch)
tree038191ae7942deaaf539acf99d645f26fe9b702c /indra
parent610b25ad3a070c984cb303250428a4a9b8301c6f (diff)
CHUI-385: Problem: When the new session was created with multiple participants the old conversation floater was being recycled. When the conversation floater was re-initialized it did not remove and update the chat messages. Resolution: When the conversation floater is recycled simply call reloadMessages().
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterimsession.cpp5
-rw-r--r--indra/newview/llfloaterimsession.h4
-rw-r--r--indra/newview/llimview.cpp3
3 files changed, 3 insertions, 9 deletions
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index f2afe9d7bb..ff07ddfcbf 100644
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -73,8 +73,7 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id)
mTypingTimer(),
mTypingTimeoutTimer(),
mPositioned(false),
- mSessionInitialized(false),
- mStartConferenceInSameFloater(false)
+ mSessionInitialized(false)
{
mIsNearbyChat = false;
@@ -462,8 +461,6 @@ void LLFloaterIMSession::addP2PSessionParticipants(const LLSD& notification, con
return;
}
- mStartConferenceInSameFloater = true;
-
LLVoiceChannel* voice_channel = LLIMModel::getInstance()->getVoiceChannel(mSessionID);
// first check whether this is a voice session
diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h
index 43d84eb8c0..6a2f4b29eb 100644
--- a/indra/newview/llfloaterimsession.h
+++ b/indra/newview/llfloaterimsession.h
@@ -127,8 +127,6 @@ public:
//used as a callback on receiving new IM message
static void sRemoveTypingIndicator(const LLSD& data);
static void onIMChicletCreated(const LLUUID& session_id);
-
- bool getStartConferenceInSameFloater() const { return mStartConferenceInSameFloater; }
const LLUUID& getOtherParticipantUUID() {return mOtherParticipantUUID;}
static boost::signals2::connection setIMFloaterShowedCallback(const floater_showed_signal_t::slot_type& cb);
@@ -188,8 +186,6 @@ private:
bool mSessionInitialized;
LLSD mQueuedMsgsForInit;
- bool mStartConferenceInSameFloater;
-
uuid_vec_t mInvitedParticipants;
// connection to voice channel state change signal
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index da3d2e89bf..868dba9687 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -2699,12 +2699,13 @@ LLUUID LLIMMgr::addSession(
{
LLFloaterIMSession* im_floater = LLFloaterIMSession::findInstance(floater_id);
- if (im_floater && im_floater->getStartConferenceInSameFloater())
+ if (im_floater)
{
// The IM floater should be initialized with a new session_id
// so that it is found by that id when creating a chiclet in LLFloaterIMSession::onIMChicletCreated,
// and a new floater is not created.
im_floater->initIMSession(session_id);
+ im_floater->reloadMessages();
}
}