diff options
Diffstat (limited to 'indra/newview/llimfloater.cpp')
-rw-r--r-- | indra/newview/llimfloater.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 1af5def5f0..6d90b6a0b2 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -589,9 +589,6 @@ void LLIMFloater::addToHost(const LLUUID& session_id) return; } - // Test the existence of the floater before we try to create it - bool exist = findInstance(session_id); - // Get the floater: this will create the instance if it didn't exist LLIMFloater* floater = getInstance(session_id); if (floater) @@ -599,8 +596,8 @@ void LLIMFloater::addToHost(const LLUUID& session_id) LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance(); - // Do not add again existing floaters - if (!exist) + // Do not attach to the IM container if it's already attached + if (!getFloaterHost()) { // LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END; // TODO: mantipov: use LLTabContainer::RIGHT_OF_CURRENT if it exists @@ -815,8 +812,7 @@ void LLIMFloater::sessionInitReplyReceived(const LLUUID& im_session_id) if (mSessionID != im_session_id) { initIMSession(im_session_id); - - buildParticipantList(); + buildConversationViewParticipant(); } initIMFloater(); @@ -1309,6 +1305,7 @@ void LLIMFloater::sRemoveTypingIndicator(const LLSD& data) floater->removeTypingIndicator(); } +// CHUI-441 : We should not create a floater here but go through LLIMFLoaterContainer void LLIMFloater::onIMChicletCreated( const LLUUID& session_id ) { LLIMFloater::addToHost(session_id); |