From 749584f78eb97ce000f0a1576fe4e8818c401638 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Fri, 3 Apr 2026 22:08:41 -0400 Subject: [PATCH] Tracker: Preload Trash icon manually, fixes #8696. Change-Id: I171e6ee9305d4840e408a3b1c001fa5028d0bd95 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10653 Reviewed-by: waddlesplash Tested-by: Commit checker robot --- src/kits/tracker/IconCache.cpp | 3 +++ src/kits/tracker/TrashWatcher.cpp | 10 ++++++++++ src/kits/tracker/TrashWatcher.h | 1 + 3 files changed, 14 insertions(+) diff --git a/src/kits/tracker/IconCache.cpp b/src/kits/tracker/IconCache.cpp index 187958d935..bb1a5ba727 100644 --- a/src/kits/tracker/IconCache.cpp +++ b/src/kits/tracker/IconCache.cpp @@ -965,6 +965,9 @@ 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 e6226d127a..e353bb34a1 100644 --- a/src/kits/tracker/TrashWatcher.cpp +++ b/src/kits/tracker/TrashWatcher.cpp @@ -68,6 +68,16 @@ BTrashWatcher::BTrashWatcher() } +thread_id +BTrashWatcher::Run() +{ + fTrashFull = CheckTrashDirs(); + UpdateTrashIcon(); + + return BLooper::Run(); +} + + BTrashWatcher::~BTrashWatcher() { stop_watching(this); diff --git a/src/kits/tracker/TrashWatcher.h b/src/kits/tracker/TrashWatcher.h index b41279a380..ece6109da6 100644 --- a/src/kits/tracker/TrashWatcher.h +++ b/src/kits/tracker/TrashWatcher.h @@ -49,6 +49,7 @@ public: BTrashWatcher(); virtual ~BTrashWatcher(); + virtual thread_id Run(); bool CheckTrashDirs(); bool IsTrashNode(const node_ref*) const;