From e99878083155b81c93b0c8b05f300a4501a2d775 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 16 Jun 2023 00:15:57 +0300
Subject: [PATCH] SL-19686 Don't reshape excessively

---
 indra/newview/llinventorygallery.cpp | 9 ++++++---
 indra/newview/llinventorygallery.h   | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp
index a7dfbb5938d..694881372db 100644
--- a/indra/newview/llinventorygallery.cpp
+++ b/indra/newview/llinventorygallery.cpp
@@ -379,7 +379,7 @@ void LLInventoryGallery::reArrangeRows(S32 row_diff)
     std::vector<LLInventoryGalleryItem*> buf_items = mItems;
     for (std::vector<LLInventoryGalleryItem*>::const_reverse_iterator it = buf_items.rbegin(); it != buf_items.rend(); ++it)
     {
-        removeFromGalleryLast(*it);
+        removeFromGalleryLast(*it, false);
     }
     for (std::vector<LLInventoryGalleryItem*>::const_reverse_iterator it = mHiddenItems.rbegin(); it != mHiddenItems.rend(); ++it)
     {
@@ -492,7 +492,7 @@ void LLInventoryGallery::addToGallery(LLInventoryGalleryItem* item)
 }
 
 
-void LLInventoryGallery::removeFromGalleryLast(LLInventoryGalleryItem* item)
+void LLInventoryGallery::removeFromGalleryLast(LLInventoryGalleryItem* item, bool needs_reshape)
 {
     if(item->isHidden())
     {
@@ -518,7 +518,10 @@ void LLInventoryGallery::removeFromGalleryLast(LLInventoryGalleryItem* item)
         }
         removeLastRow();
     }
-    reshapeGalleryPanel(row_count);
+    if (needs_reshape)
+    {
+        reshapeGalleryPanel(row_count);
+    }
 }
 
 
diff --git a/indra/newview/llinventorygallery.h b/indra/newview/llinventorygallery.h
index e314281a076..ce618602dfe 100644
--- a/indra/newview/llinventorygallery.h
+++ b/indra/newview/llinventorygallery.h
@@ -189,7 +189,7 @@ class LLInventoryGallery : public LLPanel, public LLEditMenuHandler
 
 private:
     void addToGallery(LLInventoryGalleryItem* item);
-    void removeFromGalleryLast(LLInventoryGalleryItem* item);
+    void removeFromGalleryLast(LLInventoryGalleryItem* item, bool needs_reshape = true);
     void removeFromGalleryMiddle(LLInventoryGalleryItem* item);
     LLPanel* addLastRow();
     void removeLastRow();
-- 
GitLab