From 83da6699dfad147a464c4416b13fb04591bac612 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 28 Jan 2026 22:30:32 -0500 Subject: [PATCH] Tracker: BPoseView handles "size" and "last_modified" with B_STAT_UPDATE. Fixes #19916. --- src/kits/tracker/QueryPoseView.cpp | 19 +++++++++++++++++++ src/kits/tracker/QueryPoseView.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/kits/tracker/QueryPoseView.cpp b/src/kits/tracker/QueryPoseView.cpp index dd4a3f1831..9a18b488c0 100644 --- a/src/kits/tracker/QueryPoseView.cpp +++ b/src/kits/tracker/QueryPoseView.cpp @@ -363,6 +363,25 @@ BQueryPoseView::WatchNewNodeMask() } +bool +BQueryPoseView::AttributeChanged(const BMessage* message) +{ + BMessage alteredMessage; + const char* attrName; + if (message->FindString("attr", &attrName) == B_OK) { + if (strcmp(attrName, "last_modified") == 0 || strcmp(attrName, "size") == 0) { + // BPoseView handles changes to these under B_STAT_UPDATE, + // so make this message look like that one. + alteredMessage = *message; + alteredMessage.RemoveName("attr"); + message = &alteredMessage; + } + } + + return BPoseView::AttributeChanged(message); +} + + const char* BQueryPoseView::SearchForType() const { diff --git a/src/kits/tracker/QueryPoseView.h b/src/kits/tracker/QueryPoseView.h index 44f92e08b5..f8aa83fe83 100644 --- a/src/kits/tracker/QueryPoseView.h +++ b/src/kits/tracker/QueryPoseView.h @@ -79,6 +79,7 @@ protected: virtual EntryListBase* InitDirentIterator(const entry_ref*); virtual void ReturnDirentIterator(EntryListBase* iterator); virtual uint32 WatchNewNodeMask(); + virtual bool AttributeChanged(const BMessage*); virtual void AddPosesCompleted(); private: