Commit 6d4d4425 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

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: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent b9f75396
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -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);
	}
}