[PATCH v2 1/9] kconfig: gconf: fix behavior of a menu under a symbol in split view

From: Masahiro Yamada
Date: Sun Jun 29 2025 - 14:46:13 EST


A menu can be created under a symbol.

[Example]

menu "outer menu"

config A
bool "A"

menu "inner menu"
depends on A

config B
bool "B"

endmenu

endmenu

After being re-parented by menu_finalize(), the menu tree is structured
like follows:

menu "outer menu"
\-- A
\-- menu "inner menu"
\-- B

In split view, the symbol A is shown in the right pane, so all of its
descendants must also be shown there. This has never worked correctly.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

Changes in v2:
- A new patch

scripts/kconfig/gconf.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 529a836ed5da..22badd2f710e 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -801,7 +801,7 @@ static gboolean on_treeview2_button_press_event(GtkWidget *widget,
enum prop_type ptype;
ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;

- if (ptype == P_MENU && view_mode != FULL_VIEW && col == COL_OPTION) {
+ if (ptype == P_MENU && view_mode == SINGLE_VIEW && col == COL_OPTION) {
// goes down into menu
browsed = menu;
display_tree_part();
@@ -951,8 +951,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 != FULL_VIEW) && (ptype == P_MENU)
- && (tree == tree2))
+ if ((view_mode == SINGLE_VIEW) && (ptype == P_MENU))
continue;
/*
if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
--
2.43.0