From cf1f8eef576a3ef7af7053fc7337836ad34ca00a Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 11 Nov 2007 12:55:52 +0000 Subject: [PATCH] suppress more redundant redisplay_tree() calls Organization: Straylight/Edgeware From: Richard Kettlewell --- disobedience/choose.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/disobedience/choose.c b/disobedience/choose.c index dc86412..7ce30da 100644 --- a/disobedience/choose.c +++ b/disobedience/choose.c @@ -381,6 +381,8 @@ static void got_files(void *v, int nvec, char **vec) { * done */ if(!(cn->flags & CN_GETTING_ANY)) filled(cn); + if(!gets_in_flight) + redisplay_tree("got_files"); } /** @brief Called with an alias resolved filename */ @@ -398,7 +400,7 @@ static void got_resolved_file(void *v, const char *track) { /* Only bother updating when we've got the lot */ if(--cn->pending == 0) { cn->flags &= ~CN_RESOLVING_FILES; - updated_node(cn, 1, "got_resolved_file"); + updated_node(cn, gets_in_flight == 0, "got_resolved_file"); if(!(cn->flags & CN_GETTING_ANY)) filled(cn); } @@ -424,7 +426,7 @@ static void got_dirs(void *v, int nvec, char **vec) { trackname_transform("dir", vec[n], "display"), trackname_transform("dir", vec[n], "sort"), CN_EXPANDABLE, fill_directory_node); - updated_node(cn, 1, "got_dirs"); + updated_node(cn, gets_in_flight == 0, "got_dirs"); cn->flags &= ~CN_GETTING_DIRS; if(!(cn->flags & CN_GETTING_ANY)) filled(cn); -- [mdw]