From 466914e122f201e62d8e969dcc684791e06333d3 Mon Sep 17 00:00:00 2001
From: Cosmic Linden <cosmic@lindenlab.com>
Date: Fri, 11 Aug 2023 17:18:06 -0700
Subject: [PATCH] SL-20024: Double-check object inventory is not pending when
 save button pressed

---
 indra/newview/llmaterialeditor.cpp | 4 ++++
 indra/newview/llpanelface.cpp      | 7 +++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp
index 41df58914bf..92042ad49f1 100644
--- a/indra/newview/llmaterialeditor.cpp
+++ b/indra/newview/llmaterialeditor.cpp
@@ -1836,6 +1836,10 @@ bool can_use_objects_material(LLSelectedTEGetMatData& func, const std::vector<Pe
         llassert(LLSelectMgr::getInstance()->getSelection()->getFirstObject());
         return false;
     }
+    if (selected_object->isInventoryPending())
+    {
+        return false;
+    }
     for (PermissionBit op : ops)
     {
         if (op == PERM_MODIFY && selected_object->isPermanentEnforced())
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 21651899dbd..8f09136ccfd 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -1897,11 +1897,10 @@ void LLPanelFace::updateUIGLTF(LLViewerObject* objectp, bool& has_pbr_material,
         pbr_ctrl->setImageAssetID(pbr_id);
     }
 
-    const bool inventory_pending = objectp->isInventoryPending();
     getChildView("pbr_from_inventory")->setEnabled(settable);
-    getChildView("edit_selected_pbr")->setEnabled(editable && !inventory_pending && !has_faces_without_pbr);
-    getChildView("save_selected_pbr")->setEnabled(saveable && !inventory_pending && identical_pbr);
-    if (inventory_pending)
+    getChildView("edit_selected_pbr")->setEnabled(editable && !has_faces_without_pbr);
+    getChildView("save_selected_pbr")->setEnabled(saveable && identical_pbr);
+    if (objectp->isInventoryPending())
     {
         // Reuse the same listener when possible
         if (!mInventoryListener || !mInventoryListener->isListeningFor(objectp))
-- 
GitLab