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.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/4192#issuecomment-2585800564
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/4192/[email protected]>