[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250716232542.873747-2-masahiroy@kernel.org>
Date: Thu, 17 Jul 2025 08:24:09 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: linux-kbuild@...r.kernel.org
Cc: Masahiro Yamada <masahiroy@...nel.org>,
	linux-kernel@...r.kernel.org
Subject: [PATCH 2/6] kconfig: gconf: Fix Back button behavior
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@...nel.org>
---
 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
Powered by blists - more mailing lists
 
