From 378855253a4cd65ee0b5f52f2bd887f2795cc99f Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Wed, 7 Apr 2021 20:57:02 +0300
Subject: [PATCH] SL-13182 Fix root folder's state

---
 indra/newview/llinventorypanel.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 033c4c9a58e..1998fca89d5 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -256,6 +256,7 @@ void LLInventoryPanel::initFromParams(const LLInventoryPanel::Params& params)
 		// Determine the root folder in case specified, and
 		// build the views starting with that folder.
         LLFolderView* folder_view = createFolderRoot(root_id);
+        folder_view->setChildrenInited(true); // assume that root folder's children are loaded, most of the time we do not load it the normal way
 		mFolderRoot = folder_view->getHandle();
 	
 		addItemID(root_id, mFolderRoot.get());
@@ -1102,6 +1103,7 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
             if (create_root)
             {
                 folder_view_item->setOpen(TRUE);
+                parent_folder->setChildrenInited(true);
             }
         }
 	}
@@ -1128,12 +1130,13 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
                     // run it again for the sake of creating children
                     mBuildViewsQueue.push_back(id);
                 }
-                else if (folder_view_item)
+                else
                 {
+                    create_children = true;
                     folder_view_item->setChildrenInited(true);
                 }
                 break;
-                }
+            }
             case BUILD_NO_CHILDREN:
             {
                 create_children = false;
@@ -1147,6 +1150,7 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
                 // Note: Might be better idea to do 'depth' instead,
                 // It also will help to prioritize root folder's content
                 create_children = true;
+                folder_view_item->setChildrenInited(true);
                 break;
             }
             case BUILD_NO_LIMIT:
@@ -1154,6 +1158,7 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
             {
                 // keep working till everything exists
                 create_children = true;
+                folder_view_item->setChildrenInited(true);
             }
         }
     }
-- 
GitLab