diff options
author | Loren Shih <seraph@lindenlab.com> | 2009-12-11 15:57:41 -0500 |
---|---|---|
committer | Loren Shih <seraph@lindenlab.com> | 2009-12-11 15:57:41 -0500 |
commit | d2b72fe0184fb92f4a79eebd242825fbcc5f32e9 (patch) | |
tree | 1d8bb75f6db751ae2e347737b2df3fb3f26f37e8 /indra/newview/llfolderview.cpp | |
parent | 3cb997a50475f4de54090f3e3a4490aac9e6d218 (diff) |
EXT-3373 : Favorites folder disappears after canceling filter
Doing a more robust check to see if folders need to be refreshed.
--HG--
branch : avatar-pipeline
Diffstat (limited to 'indra/newview/llfolderview.cpp')
-rw-r--r-- | indra/newview/llfolderview.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 1c5d7ae9b9..321982ceb6 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -411,7 +411,12 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen folderp->setVisible(show_folder_state == LLInventoryFilter::SHOW_ALL_FOLDERS || // always show folders? (folderp->getFiltered(filter_generation) || folderp->hasFilteredDescendants(filter_generation))); // passed filter or has descendants that passed filter } - if (folderp->getVisible()) + + // Need to call arrange regardless of visibility, since children's visibility + // might need to be changed too (e.g. even though a folder is invisible, its + // children also need to be set invisible for state-tracking purposes, e.g. + // llfolderviewitem::filter). + // if (folderp->getVisible()) { S32 child_height = 0; S32 child_width = 0; @@ -479,13 +484,13 @@ void LLFolderView::filter( LLInventoryFilter& filter ) if (getCompletedFilterGeneration() < filter.getCurrentGeneration()) { - mFiltered = FALSE; + mPassedFilter = FALSE; mMinWidth = 0; LLFolderViewFolder::filter(filter); } else { - mFiltered = TRUE; + mPassedFilter = TRUE; } } |