--- spice-gtk-0.39/tools/spicy.c 2021-12-07 21:09:07.062520158 -0300 +++ spice-gtk-0.39.test/tools/spicy.c 2022-01-02 13:14:11.718519721 -0300 @@ -463,6 +463,15 @@ g_key_file_set_boolean(keyfile, "ui", "statusbar", state); } +static void menu_cb_menubar(GtkToggleAction *action, gpointer data) +{ + SpiceWindow *win = data; + gboolean state = gtk_toggle_action_get_active(action); + + gtk_widget_set_visible(win->menubar, state); + g_key_file_set_boolean(keyfile, "ui", "menubar", state); +} + static void menu_cb_about(GtkAction *action, void *data) { char *comments = "gtk test client app for the\n" @@ -512,10 +521,14 @@ gboolean state; GtkAction *toggle; - gtk_widget_show(win->menubar); + toggle = gtk_action_group_get_action(win->ag, "Menubar"); + state = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(toggle)); + gtk_widget_set_visible(win->menubar, state); + toggle = gtk_action_group_get_action(win->ag, "Toolbar"); state = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(toggle)); gtk_widget_set_visible(win->toolbar, state); + toggle = gtk_action_group_get_action(win->ag, "Statusbar"); state = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(toggle)); gtk_widget_set_visible(win->statusbar, state); @@ -673,6 +686,10 @@ } g_clear_error(&error); + state = g_key_file_get_boolean(keyfile, "ui", "menubar", &error); + if (error == NULL) + gtk_widget_set_visible(win->menubar, state); + g_clear_error(&error); state = g_key_file_get_boolean(keyfile, "ui", "toolbar", &error); if (error == NULL) @@ -846,6 +863,11 @@ .name = "Toolbar", .label = "Toolbar", .callback = G_CALLBACK(menu_cb_toolbar), + },{ + .name = "Menubar", + .label = "Menubar", + .callback = G_CALLBACK(menu_cb_menubar), + .accelerator = "F6", } }; @@ -920,6 +942,7 @@ " \n" " \n" " \n" +" \n" " \n" " \n" #ifdef USE_SMARTCARD