diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml
index 48cbc704de..caedd7f375 100644
--- a/.github/workflows/build_viewer.yml
+++ b/.github/workflows/build_viewer.yml
@@ -384,7 +384,7 @@ jobs:
FS_BUILD_WEBHOOK_URL=${{ secrets.NIGHTLY_WEBHOOK_URL }}
elif [[ "${{github.event_name }}" == "workflow_dispatch" ]]; then
FS_RELEASE_FOLDER=test
- FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }}
+ FS_BUILD_WEBHOOK_URL=${{ secrets.MANUAL_WEBHOOK_URL }}
else
FS_RELEASE_TYPE=Unknown
fi
diff --git a/indra/media_plugins/cef/linux_volume_catcher.cpp b/indra/media_plugins/cef/linux_volume_catcher.cpp
index bc1fb38af0..b7dbb02f2c 100755
--- a/indra/media_plugins/cef/linux_volume_catcher.cpp
+++ b/indra/media_plugins/cef/linux_volume_catcher.cpp
@@ -399,7 +399,13 @@ void callback_discovered_sinkinput(pa_context *context, const pa_sink_input_info
if (0 == eol)
{
pa_proplist *proplist = sii->proplist;
- pid_t sinkpid = atoll(llpa_proplist_gets(proplist, PA_PROP_APPLICATION_PROCESS_ID));
+ const char* str = llpa_proplist_gets(proplist, PA_PROP_APPLICATION_PROCESS_ID);
+ if (!str)
+ {
+ return;
+ }
+
+ pid_t sinkpid = atoll(str);
if (isPluginPid( sinkpid )) // does the discovered sinkinput belong to this process?
{
diff --git a/indra/newview/fonts/fonts.xml b/indra/newview/fonts/fonts.xml
index e3a0b1f3e8..2f3b1193d2 100644
--- a/indra/newview/fonts/fonts.xml
+++ b/indra/newview/fonts/fonts.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_cascadia_code.xml b/indra/newview/fonts/fonts_cascadia_code.xml
index 895cf7eabb..bd1c88a3d3 100644
--- a/indra/newview/fonts/fonts_cascadia_code.xml
+++ b/indra/newview/fonts/fonts_cascadia_code.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_celestia_medium_redux.xml b/indra/newview/fonts/fonts_celestia_medium_redux.xml
index 6b28aee211..a84a3c1a26 100644
--- a/indra/newview/fonts/fonts_celestia_medium_redux.xml
+++ b/indra/newview/fonts/fonts_celestia_medium_redux.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_deja_vu_all_caps.xml b/indra/newview/fonts/fonts_deja_vu_all_caps.xml
index 8780cc6262..9006bc17ec 100644
--- a/indra/newview/fonts/fonts_deja_vu_all_caps.xml
+++ b/indra/newview/fonts/fonts_deja_vu_all_caps.xml
@@ -7,17 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_droid.xml b/indra/newview/fonts/fonts_droid.xml
index 5e575b984f..7807020928 100644
--- a/indra/newview/fonts/fonts_droid.xml
+++ b/indra/newview/fonts/fonts_droid.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_dyslexia.xml b/indra/newview/fonts/fonts_dyslexia.xml
index b41fdc1306..2a61b01fca 100644
--- a/indra/newview/fonts/fonts_dyslexia.xml
+++ b/indra/newview/fonts/fonts_dyslexia.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_liberation.xml b/indra/newview/fonts/fonts_liberation.xml
index 0261b75696..92f3678e23 100644
--- a/indra/newview/fonts/fonts_liberation.xml
+++ b/indra/newview/fonts/fonts_liberation.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_mobi.xml b/indra/newview/fonts/fonts_mobi.xml
index d9f6db65f9..376156d537 100644
--- a/indra/newview/fonts/fonts_mobi.xml
+++ b/indra/newview/fonts/fonts_mobi.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_noto.xml b/indra/newview/fonts/fonts_noto.xml
index d57a8c209c..9378473d66 100644
--- a/indra/newview/fonts/fonts_noto.xml
+++ b/indra/newview/fonts/fonts_noto.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_roboto.xml b/indra/newview/fonts/fonts_roboto.xml
index 18fad6b060..a08a25c7f3 100644
--- a/indra/newview/fonts/fonts_roboto.xml
+++ b/indra/newview/fonts/fonts_roboto.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fonts/fonts_ubuntu.xml b/indra/newview/fonts/fonts_ubuntu.xml
index 08d6051436..d98048f0bb 100644
--- a/indra/newview/fonts/fonts_ubuntu.xml
+++ b/indra/newview/fonts/fonts_ubuntu.xml
@@ -7,18 +7,14 @@
NotoEmoji-Regular.ttf
meiryo.TTC
- YuGothR.ttc
MSGOTHIC.TTC
gulim.ttc
simhei.ttf
ArialUni.ttf
msyh.ttc
- seguisym.ttf
- nirmala.ttf
- tahoma.ttf
Cambria.ttc
- micross.ttf
malgun.ttf
+ micross.ttf
ヒラギノ角ゴシック W3.ttc
diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp
index aeecbe4734..fe3bf53fdf 100644
--- a/indra/newview/fsareasearch.cpp
+++ b/indra/newview/fsareasearch.cpp
@@ -1659,6 +1659,80 @@ bool FSPanelAreaSearchList::onContextMenuItemEnable(const LLSD& userdata)
}
}
+bool FSPanelAreaSearchList::onContextMenuItemVisibleRLV(const LLSD& userdata)
+{
+ if (!RlvActions::isRlvEnabled())
+ {
+ return true;
+ }
+
+ if (RlvActions::hasBehaviour(RLV_BHVR_INTERACT))
+ {
+ return false;
+ }
+
+ const std::string& parameter = userdata.asStringRef();
+ std::vector behavs;
+ LLStringUtil::getTokens(parameter, behavs, "|");
+
+ if (std::find(behavs.begin(), behavs.end(), "delete") != behavs.end())
+ {
+ if (!rlvCanDeleteOrReturn())
+ {
+ return false;
+ }
+ }
+
+ std::vector selected = mResultList->getAllSelected();
+ for (const auto item : selected)
+ {
+ const LLUUID& object_id = item->getUUID();
+ LLViewerObject* objectp = gObjectList.findObject(object_id);
+ if (!objectp)
+ {
+ return false;
+ }
+
+ if (
+ std::find(behavs.begin(), behavs.end(), "touch") != behavs.end()
+ && !RlvActions::canTouch(objectp)
+ )
+ {
+ return false;
+ }
+ else if (
+ std::find(behavs.begin(), behavs.end(), "edit") != behavs.end()
+ && !RlvActions::canEdit(objectp)
+ )
+ {
+ return false;
+ }
+ else if (
+ std::find(behavs.begin(), behavs.end(), "sit") != behavs.end()
+ && !RlvActions::canSit(objectp)
+ )
+ {
+ return false;
+ }
+ else if (
+ std::find(behavs.begin(), behavs.end(), "buy") != behavs.end()
+ && !RlvActions::canBuyObject(object_id)
+ )
+ {
+ return false;
+ }
+ else if (
+ std::find(behavs.begin(), behavs.end(), "teleport") != behavs.end()
+ && !RlvActions::canTeleportToLocal(objectp->getPositionGlobal())
+ )
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
bool FSPanelAreaSearchList::onContextMenuItemClick(const LLSD& userdata)
{
const std::string& action = userdata.asStringRef();
@@ -1942,6 +2016,10 @@ bool FSPanelAreaSearchList::onContextMenuItemClick(const LLSD& userdata)
handle_object_delete();
break;
case 'r': // return
+ if (RlvActions::isRlvEnabled() && !rlvCanDeleteOrReturn())
+ {
+ break;
+ }
handle_object_return();
break;
default:
diff --git a/indra/newview/fsareasearch.h b/indra/newview/fsareasearch.h
index 44a67c0f87..1ee82baa5a 100644
--- a/indra/newview/fsareasearch.h
+++ b/indra/newview/fsareasearch.h
@@ -305,6 +305,7 @@ private:
bool onContextMenuItemClick(const LLSD& userdata);
bool onContextMenuItemEnable(const LLSD& userdata);
+ bool onContextMenuItemVisibleRLV(const LLSD& userdata);
void onColumnVisibilityChecked(const LLSD& userdata);
bool onEnableColumnVisibilityChecked(const LLSD& userdata);
diff --git a/indra/newview/fsareasearchmenu.cpp b/indra/newview/fsareasearchmenu.cpp
index bbef3c73ed..c5fd1b6eaf 100644
--- a/indra/newview/fsareasearchmenu.cpp
+++ b/indra/newview/fsareasearchmenu.cpp
@@ -41,6 +41,7 @@ LLContextMenu* FSAreaSearchMenu::createMenu()
registrar.add("AreaSearch.Action", boost::bind(&FSAreaSearchMenu::onContextMenuItemClick, this, _2));
enable_registrar.add("AreaSearch.Enable", boost::bind(&FSAreaSearchMenu::onContextMenuItemEnable, this, _2));
+ enable_registrar.add("AreaSearch.RLV", boost::bind(&FSAreaSearchMenu::onContextMenuItemVisibleRLV, this, _2));
return createFromFile("menu_fs_area_search.xml");
}
@@ -63,3 +64,13 @@ bool FSAreaSearchMenu::onContextMenuItemEnable(const LLSD& userdata)
}
return false;
}
+
+bool FSAreaSearchMenu::onContextMenuItemVisibleRLV(const LLSD& userdata)
+{
+ FSAreaSearch* search = LLFloaterReg::findTypedInstance("area_search");
+ if (search && search->getPanelList())
+ {
+ return search->getPanelList()->onContextMenuItemVisibleRLV(userdata);
+ }
+ return false;
+}
diff --git a/indra/newview/fsareasearchmenu.h b/indra/newview/fsareasearchmenu.h
index 2853c015f7..480b90428e 100644
--- a/indra/newview/fsareasearchmenu.h
+++ b/indra/newview/fsareasearchmenu.h
@@ -37,6 +37,7 @@ public:
private:
void onContextMenuItemClick(const LLSD& userdata);
bool onContextMenuItemEnable(const LLSD& userdata);
+ bool onContextMenuItemVisibleRLV(const LLSD& userdata);
};
extern FSAreaSearchMenu gFSAreaSearchMenu;
diff --git a/indra/newview/fsfloaterpartialinventory.cpp b/indra/newview/fsfloaterpartialinventory.cpp
index a206a4e341..3f8b7bd863 100644
--- a/indra/newview/fsfloaterpartialinventory.cpp
+++ b/indra/newview/fsfloaterpartialinventory.cpp
@@ -37,9 +37,7 @@ FSFloaterPartialInventory::FSFloaterPartialInventory(const LLSD& key) : LLFloate
mRootFolderId = key["start_folder_id"].asUUID();
}
-FSFloaterPartialInventory::~FSFloaterPartialInventory()
-{
-}
+FSFloaterPartialInventory::~FSFloaterPartialInventory() = default;
BOOL FSFloaterPartialInventory::postBuild()
{
diff --git a/indra/newview/fsfloaterplacedetails.h b/indra/newview/fsfloaterplacedetails.h
index c237eff94d..0c073a13d8 100644
--- a/indra/newview/fsfloaterplacedetails.h
+++ b/indra/newview/fsfloaterplacedetails.h
@@ -50,8 +50,8 @@ class FSPlaceDetailsPlacesParcelObserver;
class FSFloaterPlaceDetails : public LLFloater
{
public:
- FSFloaterPlaceDetails(const LLSD& seed);
- virtual ~FSFloaterPlaceDetails();
+ explicit FSFloaterPlaceDetails(const LLSD& seed);
+ ~FSFloaterPlaceDetails() override;
/*virtual*/ BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
diff --git a/indra/newview/fsfloaterprotectedfolders.cpp b/indra/newview/fsfloaterprotectedfolders.cpp
index 3c01fba56e..bdebae3d9b 100644
--- a/indra/newview/fsfloaterprotectedfolders.cpp
+++ b/indra/newview/fsfloaterprotectedfolders.cpp
@@ -40,19 +40,32 @@
FSFloaterProtectedFolders::FSFloaterProtectedFolders(const LLSD& key)
: LLFloater(key),
- mFolderList(NULL),
+ mInitialized(false),
mFilterSubString(LLStringUtil::null),
mFilterSubStringOrig(LLStringUtil::null),
mProtectedCategoriesChangedCallbackConnection(),
- mInitialized(false)
+ mFolderList(nullptr)
{
}
FSFloaterProtectedFolders::~FSFloaterProtectedFolders()
{
- if (mProtectedCategoriesChangedCallbackConnection.connected())
+ try
{
- mProtectedCategoriesChangedCallbackConnection.disconnect();
+ if (mProtectedCategoriesChangedCallbackConnection.connected())
+ {
+ mProtectedCategoriesChangedCallbackConnection.disconnect();
+ }
+ }
+ catch (const std::exception& e)
+ {
+ // Log the exception or handle it as needed
+ LL_WARNS() << "Exception caught in FSFloaterProtectedFolders destructor: " << e.what() << LL_ENDL;
+ }
+ catch (...)
+ {
+ // Catch any other types of exceptions
+ LL_WARNS() << "Unknown exception caught in FSFloaterProtectedFolders destructor" << LL_ENDL;
}
}
diff --git a/indra/newview/fsfloaterradar.h b/indra/newview/fsfloaterradar.h
index fce244e74f..3fc060b3e5 100644
--- a/indra/newview/fsfloaterradar.h
+++ b/indra/newview/fsfloaterradar.h
@@ -41,7 +41,7 @@ class FSFloaterRadar
LOG_CLASS(FSFloaterRadar);
public:
FSFloaterRadar(const LLSD &);
- virtual ~FSFloaterRadar();
+ ~FSFloaterRadar() override;
/*virtual*/ BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
diff --git a/indra/newview/fsfloaterstreamtitle.h b/indra/newview/fsfloaterstreamtitle.h
index 594f8bbfa0..830cb2c69e 100644
--- a/indra/newview/fsfloaterstreamtitle.h
+++ b/indra/newview/fsfloaterstreamtitle.h
@@ -43,7 +43,7 @@ class FSStreamTitleManager : public LLSingleton
LLSINGLETON_EMPTY_CTOR(FSStreamTitleManager);
public:
- ~FSStreamTitleManager();
+ ~FSStreamTitleManager() override;
using history_vec_t = std::vector;
@@ -78,7 +78,7 @@ class FSFloaterStreamTitleHistory : public LLFloater
{
public:
FSFloaterStreamTitleHistory(const LLSD& key);
- virtual ~FSFloaterStreamTitleHistory();
+ ~FSFloaterStreamTitleHistory() override;
BOOL postBuild() override;
void draw() override;
@@ -99,7 +99,7 @@ class FSFloaterStreamTitle : public LLFloater, LLEventTimer
{
public:
FSFloaterStreamTitle(const LLSD& key);
- virtual ~FSFloaterStreamTitle();
+ ~FSFloaterStreamTitle() override;
BOOL postBuild() override;
void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE) override;
diff --git a/indra/newview/fsfloaterteleporthistory.h b/indra/newview/fsfloaterteleporthistory.h
index 768d8aff32..ed08e9433f 100644
--- a/indra/newview/fsfloaterteleporthistory.h
+++ b/indra/newview/fsfloaterteleporthistory.h
@@ -38,7 +38,7 @@ class FSFloaterTeleportHistory : public LLFloater
{
public:
FSFloaterTeleportHistory(const LLSD& seed);
- virtual ~FSFloaterTeleportHistory();
+ ~FSFloaterTeleportHistory() override;
BOOL postBuild();
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
diff --git a/indra/newview/fsfloatervolumecontrols.cpp b/indra/newview/fsfloatervolumecontrols.cpp
index e6dbb4713b..2bb037de6c 100644
--- a/indra/newview/fsfloatervolumecontrols.cpp
+++ b/indra/newview/fsfloatervolumecontrols.cpp
@@ -40,9 +40,7 @@ FSFloaterVolumeControls::FSFloaterVolumeControls(const LLSD& key)
{
}
-FSFloaterVolumeControls::~FSFloaterVolumeControls()
-{
-}
+FSFloaterVolumeControls::~FSFloaterVolumeControls() = default;
BOOL FSFloaterVolumeControls::postBuild()
{
diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp
index 66e756720c..2611bd139f 100644
--- a/indra/newview/llfloaterpathfindinglinksets.cpp
+++ b/indra/newview/llfloaterpathfindinglinksets.cpp
@@ -54,6 +54,9 @@
#include "v3math.h"
#include "v4color.h"
+#include "rlvactions.h" // Respect RLVa restrictions
+#include "rlvcommon.h" // Respect RLVa restrictions
+
#define XUI_LINKSET_USE_NONE 0
#define XUI_LINKSET_USE_WALKABLE 1
#define XUI_LINKSET_USE_STATIC_OBSTACLE 2
@@ -556,6 +559,29 @@ void LLFloaterPathfindingLinksets::updateStateOnEditFields()
int numSelectedItems = getNumSelectedObjects();
bool isEditEnabled = (numSelectedItems > 0);
+ // Respect RLVa restrictions
+ if (RlvActions::isRlvEnabled())
+ {
+ if (
+ !rlvCanDeleteOrReturn()
+ || RlvActions::hasBehaviour(RLV_BHVR_FARTOUCH)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHALL)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHWORLD)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHME)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHTHIS)
+ || RlvActions::hasBehaviour(RLV_BHVR_INTERACT)
+ )
+ {
+ isEditEnabled = false;
+ }
+
+ if (RlvActions::hasBehaviour(RLV_BHVR_TPLOCAL))
+ {
+ numSelectedItems = 0;
+ }
+ }
+ //
+
mEditLinksetUse->setEnabled(isEditEnabled);
mLabelWalkabilityCoefficients->setEnabled(isEditEnabled);
diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp
index b264df085a..d4d5808e46 100644
--- a/indra/newview/llfloaterpathfindingobjects.cpp
+++ b/indra/newview/llfloaterpathfindingobjects.cpp
@@ -64,6 +64,9 @@
#include "v3math.h"
#include "v4color.h"
+#include "rlvactions.h" // Respect RLVa restrictions
+#include "rlvcommon.h" // Respect RLVa restrictions
+
#define DEFAULT_BEACON_WIDTH 6
//---------------------------------------------------------------------------
@@ -819,6 +822,29 @@ void LLFloaterPathfindingObjects::updateStateOnActionControls()
int numSelectedItems = mObjectsScrollList->getNumSelected();
bool isEditEnabled = (numSelectedItems > 0);
+ // Respect RLVa restrictions
+ if (RlvActions::isRlvEnabled())
+ {
+ if (
+ !rlvCanDeleteOrReturn()
+ || RlvActions::hasBehaviour(RLV_BHVR_FARTOUCH)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHALL)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHWORLD)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHME)
+ || RlvActions::hasBehaviour(RLV_BHVR_TOUCHTHIS)
+ || RlvActions::hasBehaviour(RLV_BHVR_INTERACT)
+ )
+ {
+ isEditEnabled = false;
+ }
+
+ if (RlvActions::hasBehaviour(RLV_BHVR_TPLOCAL))
+ {
+ numSelectedItems = 0;
+ }
+ }
+ //
+
mShowBeaconCheckBox->setEnabled(isEditEnabled);
mTakeButton->setEnabled(isEditEnabled && visible_take_object());
mTakeCopyButton->setEnabled(isEditEnabled && enable_object_take_copy());
diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp
index 12de4ca76b..999a027d56 100644
--- a/indra/newview/llvosurfacepatch.cpp
+++ b/indra/newview/llvosurfacepatch.cpp
@@ -987,7 +987,7 @@ LLTerrainPartition::LLTerrainPartition(LLViewerRegion* regionp)
}
// Do not add vertices; honor strict vertex count specified by strider_vertex_count
-void gen_terrain_tangents(U16 strider_vertex_count,
+void gen_terrain_tangents(U32 strider_vertex_count, // [FIRE-34363] Fix implicit cast from U32->U16 that can cause a crash
U32 strider_index_count,
LLStrider &verticesp,
LLStrider &normalsp,
@@ -1003,7 +1003,7 @@ void gen_terrain_tangents(U16 strider_vertex_count,
std::vector texcoords(strider_vertex_count);
std::vector indices(strider_index_count);
- for (U16 v = 0; v < strider_vertex_count; ++v)
+ for (U32 v = 0; v < strider_vertex_count; ++v) // [FIRE-34363] Fix implicit cast from U32->U16 that can cause a crash
{
F32 *vert = verticesp[v].mV;
vertices[v] = LLVector4a(vert[0], vert[1], vert[2], 1.f);
@@ -1019,7 +1019,7 @@ void gen_terrain_tangents(U16 strider_vertex_count,
LLCalculateTangentArray(strider_vertex_count, vertices, normals, texcoords.data(), strider_index_count / 3, indices.data(), tangents);
- for (U16 v = 0; v < strider_vertex_count; ++v)
+ for (U32 v = 0; v < strider_vertex_count; ++v) // [FIRE-34363] Fix implicit cast from U32->U16 that can cause a crash
{
tangentsp[v] = tangents[v];
}
diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp
index 1d93c91a32..0296fb2e4c 100644
--- a/indra/newview/rlvcommon.cpp
+++ b/indra/newview/rlvcommon.cpp
@@ -787,16 +787,16 @@ bool rlvMenuEnableIfNot(const LLSD& sdParam)
// Checked: 2011-05-28 (RLVa-1.4.6) | Modified: RLVa-1.4.0
bool rlvCanDeleteOrReturn(const LLViewerObject* pObj)
{
- // Block if: @rez=n restricted and owned by us or a group *or* @unsit=n restricted and being sat on by us
+ // Block if: @rez=n or @edit=n restricted and owned/editable by us or a group *or* @unsit=n restricted and being sat on by us
return
- ( (!gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) || ((!pObj->permYouOwner()) && (!pObj->permGroupOwner())) ) &&
+ ( (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT) && !gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) || ((!pObj->permYouOwner()) && (!pObj->permModify()) && (!pObj->permGroupOwner())) ) &&
( (!gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) || (!isAgentAvatarValid()) || (!pObj->getRootEdit()->isChild(gAgentAvatarp)) );
}
// Checked: 2011-05-28 (RLVa-1.4.6) | Modified: RLVa-1.4.0
bool rlvCanDeleteOrReturn()
{
- if ( (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) || (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) )
+ if ( (gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) || (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) )
{
struct RlvCanDeleteOrReturn : public LLSelectedObjectFunctor
{
diff --git a/indra/newview/skins/default/xui/en/menu_fs_area_search.xml b/indra/newview/skins/default/xui/en/menu_fs_area_search.xml
index 2215bfece5..fba0cd2a29 100644
--- a/indra/newview/skins/default/xui/en/menu_fs_area_search.xml
+++ b/indra/newview/skins/default/xui/en/menu_fs_area_search.xml
@@ -12,6 +12,9 @@
+
+
+
+
+
+
+
+
+
+
@@ -106,6 +136,9 @@
+
diff --git a/indra/newview/skins/default/xui/ru/menu_object.xml b/indra/newview/skins/default/xui/ru/menu_object.xml
index b39d866db7..1cb506bfc6 100644
--- a/indra/newview/skins/default/xui/ru/menu_object.xml
+++ b/indra/newview/skins/default/xui/ru/menu_object.xml
@@ -43,6 +43,10 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
index a404787736..fc55b4df12 100644
--- a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
@@ -16,39 +16,38 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
index d778afe53a..3a648d2750 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
@@ -88,12 +88,19 @@
m
+ Отображение аватара
+
+
+
+
+
Низкое
+
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
index 1d852d21f4..39a192a3ee 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
@@ -111,6 +111,7 @@
+
@@ -120,6 +121,15 @@
+
+ Шумоподавление
+
+
+
+
+
+
+