[PATCH 2/6] kconfig: gconf: Fix Back button behavior

From: Masahiro Yamada
Date: Wed Jul 16 2025 - 19:26:14 EST


Clicking the Back button may navigate to a non-menu hierarchy level.

[Example]

menu "menu1"

config A
bool "A"
default y

config B
bool "B"
depends on A
default y

menu "menu2"
depends on B

config C
bool "C"
default y

endmenu

endmenu

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

menu "menu1"
\-- A
\-- B
\-- menu "menu2"
\-- C

In Single view, visit "menu2" and click the Back button. It should go up
to "menu1" and show A, B and "menu2", but instead goes up to A and show
only B and "menu2". This is a bug in on_back_clicked().

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

scripts/kconfig/gconf.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index c67b35807e8e..d9ea71664412 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -553,12 +553,8 @@ static void on_license1_activate(GtkMenuItem *menuitem, gpointer user_data)
/* toolbar handlers */
static void on_back_clicked(GtkButton *button, gpointer user_data)
{
- enum prop_type ptype;
+ browsed = menu_get_parent_menu(browsed) ?: &rootmenu;

- browsed = browsed->parent;
- ptype = browsed->prompt ? browsed->prompt->type : P_UNKNOWN;
- if (ptype != P_MENU)
- browsed = browsed->parent;
recreate_tree();

if (browsed == &rootmenu)
--
2.43.0