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@kernel.org>
This commit is contained in:
Masahiro Yamada 2025-07-17 08:24:09 +09:00
parent 6d4d44254e
commit 15a5ae3b09

View file

@ -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)