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 + + Comment + Show Camera Controls always opaque + Persist + 1 + Type + Boolean + Value + 0 + 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)