From 76afa5f534eb7cc6524890b7746090e190b3325a Mon Sep 17 00:00:00 2001 From: John Scipione Date: Wed, 8 Apr 2026 01:21:56 -0400 Subject: [PATCH] Tracker: Trash entry must be set, otherwise bad things happen. Follow up to hrev59580. Preload Trash icon again. We need to Refresh cache in TrashWatcher::Run(), remove the rest. Fixes #20026. Change-Id: Ie39fff508c936819067eed198f5b801de2662ba8 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10689 Reviewed-by: John Scipione Reviewed-by: waddlesplash --- src/kits/tracker/IconCache.cpp | 3 --- src/kits/tracker/TrashWatcher.cpp | 13 +++++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/kits/tracker/IconCache.cpp b/src/kits/tracker/IconCache.cpp index bb1a5ba727..187958d935 100644 --- a/src/kits/tracker/IconCache.cpp +++ b/src/kits/tracker/IconCache.cpp @@ -965,9 +965,6 @@ IconCache::Preload(AutoLock* nodeCacheLocker, entry = GetPrinterIcon(nodeCacheLocker, sharedCacheLocker, &resultingOpenCache, model, source, mode, size, &lazyBitmap); ASSERT(entry != NULL); - } else if (model->IsTrash()) { - // do not preload Trash icon, TrashWatcher handles it. - source = kNode; } else { if (source == kUnknownSource) { // look for node icons first diff --git a/src/kits/tracker/TrashWatcher.cpp b/src/kits/tracker/TrashWatcher.cpp index e353bb34a1..284992cd0e 100644 --- a/src/kits/tracker/TrashWatcher.cpp +++ b/src/kits/tracker/TrashWatcher.cpp @@ -47,6 +47,7 @@ All rights reserved. #include "Attributes.h" #include "Bitmaps.h" #include "FSUtils.h" +#include "IconCache.h" #include "Tracker.h" @@ -71,8 +72,16 @@ BTrashWatcher::BTrashWatcher() thread_id BTrashWatcher::Run() { - fTrashFull = CheckTrashDirs(); - UpdateTrashIcon(); + // refresh Trash icon cache + BPath path; + if (find_directory(B_TRASH_DIRECTORY, &path) == B_OK) { + BDirectory trashDir(path.Path()); + BEntry entry; + if (trashDir.GetEntry(&entry) == B_OK) { + Model trashModel(&entry); + IconCache::sIconCache->IconChanged(&trashModel); + } + } return BLooper::Run(); }