From: Richard Kettlewell Date: Sun, 11 Nov 2007 12:55:52 +0000 (+0000) Subject: suppress more redundant redisplay_tree() calls X-Git-Tag: debian-1_5_99dev8~42 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/cf1f8eef576a3ef7af7053fc7337836ad34ca00a?ds=sidebyside suppress more redundant redisplay_tree() calls --- 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);