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(); }