From 50d50019d8b8350bc7b04b0b49c6107cde62f4b0 Mon Sep 17 00:00:00 2001
From: maksymsproductengine <maksymsproductengine@lindenlab.com>
Date: Mon, 18 Feb 2013 20:02:43 +0200
Subject: [PATCH] CHUI-729 FIXED Messages pane displays incorrect after
 changing size and relogin

---
 indra/llui/llfloater.h                 |  2 +-
 indra/newview/llfloaterimcontainer.cpp | 14 ++++++++++++++
 indra/newview/llfloaterimcontainer.h   |  2 ++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index a6a85fc7d15..157b9b01133 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -224,7 +224,7 @@ class LLFloater : public LLPanel, public LLInstanceTracker<LLFloater>
 	void			openFloater(const LLSD& key = LLSD());
 
 	// If allowed, close the floater cleanly, releasing focus.
-	void			closeFloater(bool app_quitting = false);
+	virtual void	closeFloater(bool app_quitting = false);
 
 	/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 	
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index c1959729d15..86d205a9205 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -1851,4 +1851,18 @@ void LLFloaterIMContainer::flashConversationItemWidget(const LLUUID& session_id,
 	}
 }
 
+void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/)
+{
+	// Always unminimize before trying to close.
+	// Most of the time the user will never see this state.
+	setMinimized(FALSE);
+
+	S32 conv_pane_width = mConversationsPane->getRect().getWidth();
+
+	// Save the conversations pane width before collapsing it.
+	gSavedPerAccountSettings.setS32("ConversationsListPaneWidth", conv_pane_width);
+
+	LLFloater::closeFloater(app_quitting);
+}
+
 // EOF
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index 265ae8df4c5..569fa9faabc 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -109,6 +109,8 @@ class LLFloaterIMContainer
 
 	void assignResizeLimits();
 
+	/*virtual*/ void closeFloater(bool app_quitting = false);
+
 private:
 	typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t;
 	avatarID_panel_map_t mSessions;
-- 
GitLab