diff options
| author | Northspring <pantera.polnocy@phoenixviewer.com> | 2014-12-19 23:30:06 +0100 |
|---|---|---|
| committer | Northspring <pantera.polnocy@phoenixviewer.com> | 2014-12-19 23:30:06 +0100 |
| commit | 35a39d5ea1cea63a3356a6cd310a3c3a90644b1c (patch) | |
| tree | 9f097a8abfe45fb44c2d8f8746a609bdda8acd7f /indra/llui/llfolderviewitem.cpp | |
| parent | 09e94a2b5d0bf6feb8b2a4f8ad86346f0201714d (diff) | |
| parent | 4ec9bce3c2a715f53938e4568c95b7a2bdfc9e16 (diff) | |
Merge
Diffstat (limited to 'indra/llui/llfolderviewitem.cpp')
| -rw-r--r-- | indra/llui/llfolderviewitem.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index 7c88f8fb9b..6dd6f94d02 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -258,20 +258,19 @@ BOOL LLFolderViewItem::passedFilter(S32 filter_generation) BOOL LLFolderViewItem::isPotentiallyVisible(S32 filter_generation) { - // Item should be visible if: - // 1. item passed current filter - // 2. item was updated (gen < 0) but has descendants that passed filter - // 3. item was recently updated and was visible before update - - LLFolderViewModelItem* model = getViewModelItem(); - if (model->getLastFilterGeneration() < 0 && !getFolderViewModel()->getFilter().isModified()) + if (filter_generation < 0) { - return model->descendantsPassedFilter(filter_generation) || getVisible(); + filter_generation = getFolderViewModel()->getFilter().getFirstSuccessGeneration(); } - else + LLFolderViewModelItem* model = getViewModelItem(); + BOOL visible = model->passedFilter(filter_generation); + if (model->getMarkedDirtyGeneration() >= filter_generation) { - return model->passedFilter(filter_generation); + // unsure visibility state + // retaining previous visibility until item is updated or filter generation changes + visible |= getVisible(); } + return visible; } void LLFolderViewItem::refresh() |
