diff -up libglade-2.6.3/glade/glade-gtk.c.secondary libglade-2.6.3/glade/glade-gtk.c --- libglade-2.6.3/glade/glade-gtk.c.secondary 2009-02-20 00:21:52.433916022 -0500 +++ libglade-2.6.3/glade/glade-gtk.c 2009-02-20 00:22:02.065954023 -0500 @@ -544,7 +544,7 @@ gtk_dialog_build_children(GladeXML *self { GtkDialog *dialog = GTK_DIALOG (w); - GList *children, *list; + GList *children, *list, *secondary; glade_standard_build_children (self, w, info); @@ -553,10 +553,13 @@ gtk_dialog_build_children(GladeXML *self /* repack children of action_area */ children = gtk_container_get_children(GTK_CONTAINER(dialog->action_area)); + secondary = NULL; for (list = children; list; list = list->next) { GtkWidget *child = GTK_WIDGET(list->data); g_object_ref(child); + if (gtk_button_box_get_child_secondary (GTK_BUTTON_BOX (dialog->action_area), child)) + secondary = g_list_prepend (secondary, child); gtk_container_remove (GTK_CONTAINER (dialog->action_area), child); } for (list = children; list; list = list->next) { @@ -569,7 +572,12 @@ gtk_dialog_build_children(GladeXML *self g_object_unref(child); } + for (list = secondary; list; list = list->next) { + GtkWidget *child = GTK_WIDGET(list->data); + gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (dialog->action_area), child, TRUE); + } g_list_free (children); + g_list_free (secondary); }