From 6ba822c0fffcf86c79d25c44625c2667ac23e64a Mon Sep 17 00:00:00 2001
From: maxim_productengine <mnikolenko@productengine.com>
Date: Tue, 13 Nov 2012 13:32:24 +0200
Subject: [PATCH] CHUI-460 FIXED Reselect floater after toggling the
 participant list open or closed

---
 indra/newview/llconversationview.cpp   |  2 +-
 indra/newview/llfloaterimcontainer.cpp | 12 +++++++++++-
 indra/newview/llfloaterimcontainer.h   |  1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 295dd2ae6d3..53392ac3729 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -240,7 +240,7 @@ void LLConversationViewSession::toggleOpen()
 		{
 			getParentFolder()->setSelection(this, true);
 		}
-
+		mContainer->reSelectConversation();
 	}
 }
 
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 2707e3dcbb6..962e9f4df66 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -334,7 +334,7 @@ void LLFloaterIMContainer::onExpandCollapseButtonClicked()
 	{
 		collapseConversationsPane(!mConversationsPane->isCollapsed());
 	}
-	selectConversation(mSelectedSession);
+	reSelectConversation();
 }
 
 LLFloaterIMContainer* LLFloaterIMContainer::findInstance()
@@ -1574,4 +1574,14 @@ void LLFloaterIMContainer::onNearbyChatClosed()
 		closeFloater();
 }
 
+void LLFloaterIMContainer::reSelectConversation()
+{
+	LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(mSelectedSession);
+	if (session_floater->getHost())
+	{
+		selectFloater(session_floater);
+	}
+
+}
+
 // EOF
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index e60576a50d1..ad1f0039e9b 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -163,6 +163,7 @@ class LLFloaterIMContainer
 	LLConversationItem* addConversationListItem(const LLUUID& uuid, bool isWidgetSelected = false);
 	void setTimeNow(const LLUUID& session_id, const LLUUID& participant_id);
 	void setNearbyDistances();
+	void reSelectConversation();
 
 private:
 	LLConversationViewSession* createConversationItemWidget(LLConversationItem* item);
-- 
GitLab