summaryrefslogtreecommitdiff
path: root/indra/newview/llfolderviewmodelinventory.cpp
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2023-05-17 18:05:05 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2023-05-17 18:05:05 +0300
commit033b04f3883a0cc9024f45b5e9a0d792cf6dbb77 (patch)
treeac49627e31aabda8aaa4b21c74c5aee2b2ea46e8 /indra/newview/llfolderviewmodelinventory.cpp
parent07dc391ab76a8860d04bfb001cdc686cd576663d (diff)
parent5a70639b7992842a9f74ec81b11bac56608b8f2e (diff)
Merge branch 'main' into DRTVWR-582-maint-U
# Conflicts: # indra/newview/llagentlistener.cpp # indra/newview/llcommanddispatcherlistener.cpp # indra/newview/llfilepicker_mac.mm # indra/newview/llworldmapview.cpp
Diffstat (limited to 'indra/newview/llfolderviewmodelinventory.cpp')
-rw-r--r--indra/newview/llfolderviewmodelinventory.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index b6d856e31b..241aa96bc8 100644
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -182,11 +182,15 @@ void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_gen
bool generation_skip = mMarkedDirtyGeneration >= 0
&& mPrevPassedAllFilters
&& mMarkedDirtyGeneration < mRootViewModel.getFilter().getFirstSuccessGeneration();
+ S32 last_generation = mLastFilterGeneration;
LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size);
bool before = mPrevPassedAllFilters;
mPrevPassedAllFilters = passedFilter(filter_generation);
- if (before != mPrevPassedAllFilters || generation_skip)
+ if (before != mPrevPassedAllFilters // Change of state
+ || generation_skip // Was marked dirty
+ // Potential change from being in-progress and invisible to visible)
+ || (mPrevPassedAllFilters && last_generation < mRootViewModel.getFilter().getFirstRequiredGeneration()))
{
// Need to rearrange the folder if the filtered state of the item changed,
// previously passed item skipped filter generation changes while being dirty