From fecf706f1be58f76df81f8bc1a4a5f3307cee6ff Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Wed, 20 Jul 2011 20:16:47 -0700
Subject: [PATCH] EXP-880 FIX Enable navigation chrome for Search floater
 changes in size of target windows other than _blank or "" are not saved
 EXP-1018 FIX Profile button in Basic mode does not toggle correctly when
 profile is opened and toggles on and closes other Web Content Panel windows

---
 indra/newview/llavataractions.cpp     |  8 ++++++--
 indra/newview/llfloaterwebcontent.cpp | 14 +++++++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 48827676cdf..cd6754facd1 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -335,7 +335,9 @@ void LLAvatarActions::showProfile(const LLUUID& id)
 //static 
 bool LLAvatarActions::profileVisible(const LLUUID& id)
 {
-	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", id.asString()));
+	LLSD sd;
+	sd["id"] = id;
+	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", sd));
 	return browser && browser->isShown();
 }
 
@@ -343,7 +345,9 @@ bool LLAvatarActions::profileVisible(const LLUUID& id)
 //static 
 void LLAvatarActions::hideProfile(const LLUUID& id)
 {
-	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", id.asString()));
+	LLSD sd;
+	sd["id"] = id;
+	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", sd));
 	if (browser)
 	{
 		browser->closeFloater();
diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp
index c7c6857a47f..785441a67e7 100644
--- a/indra/newview/llfloaterwebcontent.cpp
+++ b/indra/newview/llfloaterwebcontent.cpp
@@ -87,7 +87,15 @@ BOOL LLFloaterWebContent::postBuild()
 
 bool LLFloaterWebContent::matchesKey(const LLSD& key)
 {
-	return key["target"].asString() == mKey["target"].asString();
+	LLUUID id = key["id"];
+	if (id.notNull())
+	{
+		return id == mKey["id"].asUUID();
+	}
+	else
+	{
+		return key["target"].asString() == mKey["target"].asString();
+	}
 }
 
 
@@ -250,6 +258,10 @@ void LLFloaterWebContent::onOpen(const LLSD& key)
 		return;
 	}
 
+	if (params.target() == params.id().asString())
+	{
+		setRectControl("");
+	}
 	mUUID = params.id().asString();
 	mWebBrowser->setTrustedContent(params.trusted_content);
 
-- 
GitLab