55 lines
2.6 KiB
Diff
55 lines
2.6 KiB
Diff
From 64c9565516304fa3376890d654d41a1e162c99eb Mon Sep 17 00:00:00 2001
|
|
From: Alistair Buxton <a.j.buxton@gmail.com>
|
|
Date: Mon, 14 Oct 2013 00:41:45 +0100
|
|
Subject: [PATCH] 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.
|
|
---
|
|
terminal/terminal-encoding-action.c | 7 +++----
|
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
|
|
|
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);
|
|
--
|
|
1.8.3.2
|
|
|