--- gtk+-3.12.1-2/gtk/gtkdialog.c 2014-04-11 18:31:32.000000000 -0400 +++ gtk+-3.12.1/gtk/gtkdialog.c 2014-04-23 07:07:53.000000000 -0400 @@ -45,6 +45,7 @@ #include "gtktypebuiltins.h" #include "deprecated/gtkstock.h" #include "gtksizegroup.h" +#include "a11y/gtkcontaineraccessible.h" /** * SECTION:gtkdialog @@ -308,6 +309,27 @@ gtk_style_context_add_class (gtk_widget_get_style_context (label), "title"); gtk_box_set_center_widget (GTK_BOX (box), label); g_signal_connect_object (dialog, "notify::title", G_CALLBACK (update_title), label, 0); + + GtkWidget *button; + GtkWidget *image = NULL; + AtkObject *accessible; + button = gtk_button_new (); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + image = gtk_image_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU); + gtk_style_context_add_class (gtk_widget_get_style_context (button), "titlebutton"); + g_object_set (image, "use-fallback", TRUE, NULL); + gtk_container_add (GTK_CONTAINER (button), image); + gtk_widget_set_can_focus (button, FALSE); + gtk_widget_show_all (button); + g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_dialog_close), dialog); + accessible = gtk_widget_get_accessible (button); + if (GTK_IS_ACCESSIBLE (accessible)) + atk_object_set_name (accessible, _("Close")); + gtk_box_pack_end(GTK_BOX (box), button, 0, 0, 0); } gtk_window_set_titlebar (GTK_WINDOW (dialog), box);