From 4723375709313d99ec8243179e71a114322f810e Mon Sep 17 00:00:00 2001
From: andreykproductengine <akleshchev@productengine.com>
Date: Thu, 31 Jul 2014 18:14:38 +0300
Subject: [PATCH] MAINT-4290 FIXED [BEAR] Recent Items flashes badly and
 sometimes blanks out when any change is made to inventory and especially when
 inventory is fetching from a clean cache

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

diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index adfdfebae73..4491ec8488c 100755
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -590,9 +590,20 @@ void LLInventoryPanel::modelChanged(U32 mask)
 		}
 	}
 
-	if ("Recent Items" == getName())
+	if (mask & (LLInventoryObserver::STRUCTURE | LLInventoryObserver::REMOVE))
 	{
-		getFilter().setModified();
+		// STRUCTURE and REMOVE model changes usually fail to update (clean)
+		// mMostFilteredDescendantGeneration of parent folder and dirtyFilter()
+		// is not sufficient for successful filter update, so we need to check
+		// all already passed element over again to remove obsolete elements.
+		// New items or moved items should be sufficiently covered by
+		// dirtyFilter().
+		LLInventoryFilter& filter = getFilter();
+		if (filter.getFilterTypes() & LLInventoryFilter::FILTERTYPE_DATE
+			|| filter.isNotDefault())
+		{
+			filter.setModified(LLFolderViewFilter::FILTER_MORE_RESTRICTIVE);
+		}
 	}
 }
 
-- 
GitLab