diff options
author | Alexei Arabadji <aarabadji@productengine.com> | 2010-05-27 14:47:27 +0300 |
---|---|---|
committer | Alexei Arabadji <aarabadji@productengine.com> | 2010-05-27 14:47:27 +0300 |
commit | c63233106b4785de86a0cff3d108e36b7db2b127 (patch) | |
tree | 6f4eceb37b96463dba75e3e6842c8d3b527bf875 | |
parent | 07dba9ae377d216e049aa9c3019bc51571b48488 (diff) |
EXT-7090 FIXED Made snapshot preview and minimap(like in 1.23) floaters showable in mouselook mode.
reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/449/
--HG--
branch : product-engine
-rw-r--r-- | indra/llui/llfloaterreg.cpp | 13 | ||||
-rw-r--r-- | indra/llui/llfloaterreg.h | 4 | ||||
-rw-r--r-- | indra/newview/app_settings/settings.xml | 14 |
3 files changed, 30 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 diff --git a/indra/llui/llfloaterreg.h b/indra/llui/llfloaterreg.h index 5cacf76771..f1ba41f638 100644 --- a/indra/llui/llfloaterreg.h +++ b/indra/llui/llfloaterreg.h @@ -76,6 +76,10 @@ private: static build_map_t sBuildMap; static std::map<std::string,std::string> sGroupMap; static bool sBlockShowFloaters; + /** + * Defines list of floater names that can be shown despite state of sBlockShowFloaters. + */ + static std::set<std::string> sAlwaysShowableList; public: // Registration diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 59b6115fab..693093c6ce 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -11217,5 +11217,19 @@ <key>Value</key> <integer>178</integer> </map> + <key>always_showable_floaters</key> + <map> + <key>Comment</key> + <string>Floaters that can be shown despite mouselook mode</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>LLSD</string> + <key>Value</key> + <array> + <string>snapshot</string> + <string>mini_map</string> + </array> + </map> </map> </llsd> |