diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 48827676cdf161a10e08fb227285746895e83f0b..cd6754facd1f9ed0c15ab74f50cb4ec572f842d6 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 c7c6857a47fdb0998235abeec7573de137fd2bf5..785441a67e75b5b9003d8972efdd83f743dec877 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);