[Xfce4-commits] <xfce4-terminal:master> Fix up the encoding menu creation.

Nick Schermer noreply at xfce.org
Sat Dec 7 12:24:01 CET 2013


Updating branch refs/heads/master
         to 71bd87a532f250d6bc98d52a5d546d43056bbd99 (commit)
       from b2676d47a539cc32be68efa28cbc484d0bb7984f (commit)

commit 71bd87a532f250d6bc98d52a5d546d43056bbd99
Author: Alistair Buxton <a.j.buxton at gmail.com>
Date:   Mon Oct 14 00:41:45 2013 +0100

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


More information about the Xfce4-commits mailing list