summaryrefslogtreecommitdiff
path: root/indra/llui/llfloaterreg.cpp
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-05-28 09:56:21 +0100
committerTofu Linden <tofu.linden@lindenlab.com>2010-05-28 09:56:21 +0100
commita7ffd8b7a3d26be6f1841f538631adbb0f3f5604 (patch)
tree8b59519b772b38b01f81689d0e13b3c9cb6d7804 /indra/llui/llfloaterreg.cpp
parent8ec4f45daa93ca1acc5e45df2def1b84397127e8 (diff)
parenta1b973fc2a5d28e64dcf010e3652beda78745d35 (diff)
merge from PE's viewer-trunk
Diffstat (limited to 'indra/llui/llfloaterreg.cpp')
-rw-r--r--indra/llui/llfloaterreg.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 7588d8ab7a..85f9af126c 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -47,6 +47,7 @@ LLFloaterReg::instance_map_t LLFloaterReg::sInstanceMap;
LLFloaterReg::build_map_t LLFloaterReg::sBuildMap;
std::map<std::string,std::string> LLFloaterReg::sGroupMap;
bool LLFloaterReg::sBlockShowFloaters = false;
+std::set<std::string> LLFloaterReg::sAlwaysShowableList;
static LLFloaterRegListener sFloaterRegListener;
@@ -219,7 +220,9 @@ LLFloaterReg::const_instance_list_t& LLFloaterReg::getFloaterList(const std::str
//static
LLFloater* LLFloaterReg::showInstance(const std::string& name, const LLSD& key, BOOL focus)
{
- if( sBlockShowFloaters )
+ if( sBlockShowFloaters
+ // see EXT-7090
+ && sAlwaysShowableList.find(name) == sAlwaysShowableList.end())
return 0;//
LLFloater* instance = getInstance(name, key);
if (instance)
@@ -403,6 +406,14 @@ void LLFloaterReg::registerControlVariables()
declareVisibilityControl(name);
}
}
+
+ const LLSD& exclude_list = LLUI::sSettingGroups["config"]->getLLSD("always_showable_floaters");
+ for (LLSD::array_const_iterator iter = exclude_list.beginArray();
+ iter != exclude_list.endArray();
+ iter++)
+ {
+ sAlwaysShowableList.insert(iter->asString());
+ }
}
// Callbacks