diff options
| author | maxim_productengine <mnikolenko@productengine.com> | 2018-10-16 17:04:30 +0300 | 
|---|---|---|
| committer | maxim_productengine <mnikolenko@productengine.com> | 2018-10-16 17:04:30 +0300 | 
| commit | 6128b4ecba42cb13d38f094ca67e873362d6861f (patch) | |
| tree | 23f3d66ad3fd1126b3d2ee7799672955fd3c2679 | |
| parent | 5d163706ac1b945b6ba1edf189f3acc0f3a26da2 (diff) | |
SL-9874 [EEP] Defocus environment focus when setting environment from the menu
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index db18d6ed2c..ddd287e6b1 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -8409,6 +8409,20 @@ class LLToolsSelectTool : public view_listener_t  /// WINDLIGHT callbacks  class LLWorldEnvSettings : public view_listener_t  {	 +    void defocusEnvFloaters() +    { +        //currently there is only one instance of each floater +        std::vector<std::string> env_floaters_names = { "env_edit_extdaycycle", "env_fixed_environmentent_water", "env_fixed_environmentent_sky" }; +        for (std::vector<std::string>::const_iterator it = env_floaters_names.begin(); it != env_floaters_names.end(); ++it) +        { +            LLFloater* env_floater = LLFloaterReg::findTypedInstance<LLFloater>(*it); +            if (env_floater) +            { +                env_floater->setFocus(FALSE); +            } +        } +    } +  	bool handleEvent(const LLSD& userdata)  	{  		std::string event_name = userdata.asString(); @@ -8418,30 +8432,35 @@ class LLWorldEnvSettings : public view_listener_t              LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNRISE);              LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().updateEnvironment(); +            defocusEnvFloaters();  		}  		else if (event_name == "noon")  		{              LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDDAY);              LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().updateEnvironment(); +            defocusEnvFloaters();          }  		else if (event_name == "sunset")  		{              LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNSET);              LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().updateEnvironment(); +            defocusEnvFloaters();          }  		else if (event_name == "midnight")  		{              LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDNIGHT);              LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().updateEnvironment(); +            defocusEnvFloaters();          }          else if (event_name == "region")  		{              LLEnvironment::instance().clearEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);              LLEnvironment::instance().updateEnvironment(); +            defocusEnvFloaters();          }          else if (event_name == "pause_clouds")          {  | 
