From 1109fca197325b0e081c8c2b9ed7c9e455035e83 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Tue, 24 Jan 2023 14:14:37 +0200
Subject: SL-19025 Fix for object's context menu

Inspect and copy doesn't work for face or child selection. Disable them in such cases.
---
 indra/newview/llviewermenu.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

(limited to 'indra/newview/llviewermenu.cpp')

diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index c796ed30f7..37227518f5 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -2876,6 +2876,13 @@ void handle_object_open()
 	LLFloaterReg::showInstance("openobject");
 }
 
+bool enable_object_inspect()
+{
+    LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
+    LLViewerObject* selected_objectp = selection->getFirstRootObject();
+    return selected_objectp != NULL;
+}
+
 bool enable_object_open()
 {
 	// Look for contents in root object, which is all the LLFloaterOpenObject
@@ -7943,7 +7950,7 @@ bool enable_object_take_copy()
 	bool all_valid = false;
 	if (LLSelectMgr::getInstance())
 	{
-		if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
+		if (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 0)
 		{
 		all_valid = true;
 #ifndef HACKED_GODLIKE_VIEWER
@@ -9650,6 +9657,7 @@ void initialize_menus()
 	commit.add("Object.Open", boost::bind(&handle_object_open));
 	commit.add("Object.Take", boost::bind(&handle_take));
 	commit.add("Object.ShowInspector", boost::bind(&handle_object_show_inspector));
+    enable.add("Object.EnableInspect", boost::bind(&enable_object_inspect));
 	enable.add("Object.EnableOpen", boost::bind(&enable_object_open));
 	enable.add("Object.EnableTouch", boost::bind(&enable_object_touch, _1));
 	enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));
-- 
cgit v1.2.3