summaryrefslogtreecommitdiff
path: root/indra/newview/llfolderview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfolderview.cpp')
-rw-r--r--indra/newview/llfolderview.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index adf7f08702..8b05f8614d 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -331,6 +331,7 @@ BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)
{
mFolders.insert(mFolders.begin(), folder);
}
+ folder->setShowLoadStatus(true);
folder->setOrigin(0, 0);
folder->reshape(getRect().getWidth(), 0);
folder->setVisible(FALSE);
@@ -748,6 +749,12 @@ void LLFolderView::sanitizeSelection()
}
}
}
+
+ // Don't allow invisible items (such as root folders) to be selected.
+ if (item->getDontShowInHierarchy())
+ {
+ items_to_remove.push_back(item);
+ }
}
std::vector<LLFolderViewItem*>::iterator item_it;
@@ -767,7 +774,7 @@ void LLFolderView::sanitizeSelection()
parent_folder;
parent_folder = parent_folder->getParentFolder())
{
- if (parent_folder->potentiallyVisible())
+ if (parent_folder->potentiallyVisible() && !parent_folder->getDontShowInHierarchy())
{
// give initial selection to first ancestor folder that potentially passes the filter
if (!new_selection)
@@ -788,6 +795,11 @@ void LLFolderView::sanitizeSelection()
{
// nothing selected to start with, so pick "My Inventory" as best guess
new_selection = getItemByID(gInventory.getRootFolderID());
+ // ... except if it's hidden from the UI.
+ if (new_selection && new_selection->getDontShowInHierarchy())
+ {
+ new_selection = NULL;
+ }
}
if (new_selection)