kconfig: gconf: fix single view to display dependent symbols correctly

In the following example, the symbol C was never displayed in Single
view. Fix the recursion logic so that all symbols are shown.

  menu "menu"

  config A
          bool "A"

  config B
          bool "B"
          depends on A

  config C
          bool "C"
          depends on B

  endmenu

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Masahiro Yamada
2025-07-17 08:24:08 +09:00
parent b9f75396ec
commit 6d4d44254e
+1 -15
View File
@@ -914,9 +914,7 @@ static gboolean on_treeview1_button_press_event(GtkWidget *widget,
static void _display_tree(GtkTreeStore *tree, struct menu *menu,
GtkTreeIter *parent)
{
struct property *prop;
struct menu *child;
enum prop_type ptype;
GtkTreeIter iter;
for (child = menu->list; child; child = child->next) {
@@ -929,9 +927,6 @@ static void _display_tree(GtkTreeStore *tree, struct menu *menu,
if (child->type == M_IF)
continue;
prop = child->prompt;
ptype = prop ? prop->type : P_UNKNOWN;
if ((view_mode == SPLIT_VIEW)
&& !(child->flags & MENU_ROOT) && (tree == tree1))
continue;
@@ -943,16 +938,7 @@ static void _display_tree(GtkTreeStore *tree, struct menu *menu,
gtk_tree_store_append(tree, &iter, parent);
set_node(tree, &iter, child);
if ((view_mode == SINGLE_VIEW) && (ptype == P_MENU))
continue;
/*
if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
|| (view_mode == FULL_VIEW)
|| (view_mode == SPLIT_VIEW))*/
if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
|| (view_mode == FULL_VIEW)
|| (view_mode == SPLIT_VIEW))
if (view_mode != SINGLE_VIEW || child->type != M_MENU)
_display_tree(tree, child, &iter);
}
}