> Maybe one more comment - I think it would be good to always update all
> children, i.e.
>
> ```diff
> diff --git a/src/prefs.c b/src/prefs.c
> index ec609e5c7..81cc3d623 100644
> --- a/src/prefs.c
> +++ b/src/prefs.c
> @@ -1444,7 +1444,7 @@ static void kb_tree_update_visibility(GtkTreeStore
> *store, const gchar *entry_te
> return;
>
> /* foreach child */
> - while (!visible_parent)
> + while (TRUE)
> {
> gboolean visible;
> gchar *action_name;
> @@ -1459,7 +1459,7 @@ static void kb_tree_update_visibility(GtkTreeStore
> *store, const gchar *entry_te
> if (visible)
> visible_children = TRUE;
>
> - gtk_tree_store_set(store, &child, KB_TREE_VISIBLE,
> visible, -1);
> + gtk_tree_store_set(store, &child, KB_TREE_VISIBLE,
> visible || visible_parent, -1);
>
> if (! gtk_tree_model_iter_next(model, &child))
> break;
> ```
>
> When you try to search for something like "file ff", it filters out
> everything. But when you remove the last "f" (so the entry contins "file f"),
> it should again show all items from the "File" group. It doesn't happen now
> because children visibility was set to FALSE previously and they don't get
> re-updated because the while loop is skipped.
Thanks, comitted as is.
I'd squash the last commits before merging.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/4192#issuecomment-2585862590
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/4192/[email protected]>