⛏️ index : haiku.git

author Augustin Cavalier <waddlesplash@gmail.com> 2025-04-30 17:20:20.0 -04:00:00
committer Augustin Cavalier <waddlesplash@gmail.com> 2025-04-30 17:20:20.0 -04:00:00
commit
218e7ce1be71262b40d09f7c0273d4eb400a9509 [patch]
tree
f7a495ef98bc5b0daf157dea229c7f6ce74b8620
parent
d26ab46206a0f040cbe79ce55b0ce725fd94589c
download
218e7ce1be71262b40d09f7c0273d4eb400a9509.tar.gz

Tracker: Use B_QUERY_WATCH_ALL to avoid watching every single node.

Similar to the use of B_WATCH_CHILDREN for directories.
Following the preceding commits, this seems to be working well.

Diff

 src/kits/tracker/QueryPoseView.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/kits/tracker/QueryPoseView.cpp b/src/kits/tracker/QueryPoseView.cpp
index c320ff2..7b4188b 100644
--- a/src/kits/tracker/QueryPoseView.cpp
+++ b/src/kits/tracker/QueryPoseView.cpp
@@ -57,6 +57,7 @@
#include "Tracker.h"

#include <fs_attr.h>
#include <query_private.h>


using std::nothrow;
@@ -357,7 +358,8 @@
uint32
BQueryPoseView::WatchNewNodeMask()
{
	return B_WATCH_NAME | B_WATCH_STAT | B_WATCH_ATTR;
	// B_QUERY_WATCH_ALL suffices.
	return 0;
}


@@ -627,8 +629,9 @@
	const_cast<BQuery*>(copyThis)->GetPredicate(&buffer);
	query->SetPredicate(buffer.String());

	query->SetTarget(BMessenger(target));
	query->SetVolume(volume);
	query->SetTarget(BMessenger(target));
	query->SetFlags(B_QUERY_WATCH_ALL);

	status_t result = query->Fetch();
	if (result != B_OK) {