diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index a8cb81e03..1b1d6d42c 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -9893,6 +9893,21 @@ class ListObjectCanEdit : public view_listener_t } }; +class ListObjectDerender final : public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) override + { + const std::string& unknown = LLTrans::getString("land_type_unknown"); + for (const auto& id : LFIDBearer::getActiveSelectedIDs()) + { + const auto& obj_data = get_obj_data(id); // Needed for object name + add_object_to_blacklist(id, obj_data ? obj_data->name : unknown); + } + + return true; + } +}; + class MediaCtrlCopyURL : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -10295,6 +10310,7 @@ void initialize_menus() addMenu(new ListObjectEnableTouch, "List.Object.EnableTouch"); addMenu(new ListObjectEdit, "List.Object.Edit"); addMenu(new ListObjectCanEdit, "List.Object.CanEdit"); + addMenu(new ListObjectDerender, "List.Object.Derender"); addMenu(new ListExperienceAllow, "List.Experience.Allow"); addMenu(new ListExperienceForget, "List.Experience.Forget"); addMenu(new ListExperienceBlock, "List.Experience.Block"); diff --git a/indra/newview/skins/default/xui/en-us/menu_objects_list.xml b/indra/newview/skins/default/xui/en-us/menu_objects_list.xml index 7606a5bbb..ad1ace378 100644 --- a/indra/newview/skins/default/xui/en-us/menu_objects_list.xml +++ b/indra/newview/skins/default/xui/en-us/menu_objects_list.xml @@ -37,6 +37,10 @@ + + + + diff --git a/indra/newview/skins/default/xui/en-us/menu_url_objectim.xml b/indra/newview/skins/default/xui/en-us/menu_url_objectim.xml index 6f32a938f..b07bef41a 100644 --- a/indra/newview/skins/default/xui/en-us/menu_url_objectim.xml +++ b/indra/newview/skins/default/xui/en-us/menu_url_objectim.xml @@ -76,6 +76,10 @@ + + + +