From 71bd87a532f250d6bc98d52a5d546d43056bbd99 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Sun, 13 Oct 2013 23:41:45 +0000 Subject: Fix up the encoding menu creation. Don't add non-radio items to the radio item group. Don't leak list nodes by prepending twice to the same list. Fixes BUG #10395. --- diff --git a/terminal/terminal-encoding-action.c b/terminal/terminal-encoding-action.c index 83242e9..77c916c 100644 --- a/terminal/terminal-encoding-action.c +++ b/terminal/terminal-encoding-action.c @@ -253,7 +253,7 @@ terminal_encoding_action_menu_shown (GtkWidget *menu, /* action to reset to the default */ default_label = g_strdup_printf (_("Default (%s)"), default_charset); item = gtk_radio_menu_item_new_with_label (groups, default_label); - groups = g_slist_prepend (groups, item); + groups = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), found); g_signal_connect (G_OBJECT (item), "activate", @@ -267,7 +267,6 @@ terminal_encoding_action_menu_shown (GtkWidget *menu, /* category item */ item = gtk_menu_item_new_with_label (_(terminal_encodings_names[n])); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - groups = g_slist_prepend (groups, item); gtk_widget_show (item); submenu = gtk_menu_new (); @@ -281,7 +280,7 @@ terminal_encoding_action_menu_shown (GtkWidget *menu, break; item2 = gtk_radio_menu_item_new_with_label (groups, charset); - groups = g_slist_prepend (groups, item2); + groups = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item2)); gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item2); g_object_set_qdata (G_OBJECT (item2), encoding_action_quark, (gchar *) charset); gtk_widget_show (item2); @@ -304,7 +303,7 @@ terminal_encoding_action_menu_shown (GtkWidget *menu, { /* add an action with the unknown charset */ item2 = gtk_radio_menu_item_new_with_label (groups, action->current); - groups = g_slist_prepend (groups, item2); + groups = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item2)); g_object_set_qdata_full (G_OBJECT (item2), encoding_action_quark, g_strdup (action->current), g_free); gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item2); -- cgit v0.9.2