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;