diff options
| author | Alexei Arabadji <aarabadji@productengine.com> | 2010-05-27 14:48:21 +0300 | 
|---|---|---|
| committer | Alexei Arabadji <aarabadji@productengine.com> | 2010-05-27 14:48:21 +0300 | 
| commit | 621df44f2b504cb1576e613ca8ab1784e93b1a52 (patch) | |
| tree | 378279f3b0ef6169ffd1bb7b7a42282f5f8956e5 | |
| parent | 423398081b5c4402ebc162c43eaf29acdeb9f423 (diff) | |
| parent | c63233106b4785de86a0cff3d108e36b7db2b127 (diff) | |
Automated merge with https://hg.productengine.com/secondlife/viewer-trunk/
--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>  | 
