From 8089e12b861ca10eef9fc95417a86eeb62c91a2f Mon Sep 17 00:00:00 2001
From: Leyla Farazha <leyla@lindenlab.com>
Date: Tue, 18 Aug 2009 00:03:33 +0000
Subject: [PATCH] EXT-547 Loosing focus on an IM window looses typed entries
 and a fix for undocked im windows not closing when we open another im window
 reviewed by james

---
 indra/newview/llimpanel.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index d1eb94c3712..46f3cb69980 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -2177,8 +2177,11 @@ void LLIMFloater::onFocusLost()
 	// (hence we are no longer focused)
 	if (isDocked())
 	{
-		// app not quitting
-		closeFloater(false);
+		LLIMFloater* floater = LLFloaterReg::getTypedInstance<LLIMFloater>("impanel", mSessionID);
+		if (floater)
+		{
+			floater->setVisible(false);
+		}	
 	}
 }
 
@@ -2214,7 +2217,7 @@ LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
 		 iter != inst_list.end(); ++iter)
 	{
 		LLIMFloater* floater = dynamic_cast<LLIMFloater*>(*iter);
-		if (floater)
+		if (floater && floater->isDocked())
 		{
 			floater->setVisible(false);
 		}
-- 
GitLab