diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp
index 05b1d45967..5f1d89ae88 100644
--- a/indra/llui/lluictrl.cpp
+++ b/indra/llui/lluictrl.cpp
@@ -1001,6 +1001,13 @@ F32 LLUICtrl::getCurrentTransparency()
case TT_FADING:
alpha = sInactiveControlTransparency / 2;
break;
+
+ // FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
+ case TT_FORCE_OPAQUE:
+ alpha = 10;
+ break;
+ //
+
}
return alpha;
diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h
index 71b1c0a263..9a1ba4978c 100644
--- a/indra/llui/lluictrl.h
+++ b/indra/llui/lluictrl.h
@@ -134,6 +134,7 @@ public:
TT_ACTIVE, // focused floater
TT_INACTIVE, // other floaters
TT_FADING, // fading toast
+ TT_FORCE_OPAQUE, // forced opaqueness (alpha = 10) for FIRE-5583, FIRE-5220 (option to show Camera Controls always opaque)
};
/*virtual*/ ~LLUICtrl();
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index df5d1e4107..d13dd20428 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -19239,5 +19239,16 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
1
+ FSAlwaysOpaqueCameraControls
+
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index ac1592e196..d5f16bc2ec 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -314,6 +314,7 @@ void LLFloaterCamera::onOpen(const LLSD& key)
LLFirstUse::viewPopup();
mZoom->onOpen(key);
+ setCameraFloaterTransparencyMode(LLSD(gSavedSettings.getBOOL("FSAlwaysOpaqueCameraControls"))); // FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
// Returns to previous mode, see EXT-2727(View tool should remember state).
// In case floater was just hidden and it isn't reset the mode
@@ -354,7 +355,11 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val)
// virtual
BOOL LLFloaterCamera::postBuild()
{
- updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
+
+ // FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
+ // updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
+ gSavedSettings.getControl("FSAlwaysOpaqueCameraControls")->getSignal()->connect(boost::bind(&LLFloaterCamera::setCameraFloaterTransparencyMode, this, _2));
+ //
mRotate = getChild(ORBIT);
mZoom = findChild(ZOOM);
@@ -380,6 +385,20 @@ BOOL LLFloaterCamera::postBuild()
return LLFloater::postBuild();
}
+// FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
+void LLFloaterCamera::setCameraFloaterTransparencyMode(const LLSD &data)
+{
+ if(data.asBoolean())
+ {
+ updateTransparency(TT_FORCE_OPAQUE);
+ }
+ else
+ {
+ updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
+ }
+}
+//
+
void LLFloaterCamera::fillFlatlistFromPanel (LLFlatListView* list, LLPanel* panel)
{
// copying child list and then iterating over a copy, because list itself
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index effd59d816..10c73103cc 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -81,6 +81,8 @@ public:
LLPanelCameraZoom* mZoom;
LLJoystickCameraTrack* mTrack;
+ void setCameraFloaterTransparencyMode(const LLSD &data); // FIRE-5583, FIRE-5220: Option to show Camera Controls always opaque
+
private:
LLFloaterCamera(const LLSD& val);
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
index 5e70638fd6..cc64e769b0 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
@@ -530,6 +530,17 @@
text_color="White_25">
(requires restart)
+
+
+
(wymaga restartu)