# HG changeset patch
# Node ID 09765a5b248d
# Parent  70144e5e0a89
diff --git a/pidgin/pidginabout.c b/pidgin/pidginabout.c
--- a/pidgin/pidginabout.c
+++ b/pidgin/pidginabout.c
@@ -507,8 +507,14 @@
  * Callbacks
  *****************************************************************************/
 static void
-pidgin_about_dialog_close(GtkWidget *b, gpointer data) {
-	gtk_widget_destroy(GTK_WIDGET(data));
+pidgin_about_dialog_response_cb(GtkDialog *dialog, gint response_id,
+                                G_GNUC_UNUSED gpointer data)
+{
+	switch(response_id) {
+		case GTK_RESPONSE_CLOSE:
+			gtk_widget_destroy(GTK_WIDGET(dialog));
+			break;
+	}
 }
 
 /******************************************************************************
@@ -525,26 +531,41 @@
 		"/im/pidgin/Pidgin3/About/about.ui"
 	);
 
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, close_button);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, application_name);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, stack);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     close_button);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     application_name);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     stack);
 
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, main_scrolled_window);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, main_buffer);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     main_scrolled_window);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     main_buffer);
 
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, developers_page);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, developers_store);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, developers_treeview);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     developers_page);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     developers_store);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     developers_treeview);
 
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, translators_page);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, translators_store);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, translators_treeview);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     translators_page);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     translators_store);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     translators_treeview);
 
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, build_info_page);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, build_info_store);
-	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog, build_info_treeview);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     build_info_page);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     build_info_store);
+	gtk_widget_class_bind_template_child(widget_class, PidginAboutDialog,
+	                                     build_info_treeview);
 
-	gtk_widget_class_bind_template_callback(widget_class, pidgin_about_dialog_close);
+	gtk_widget_class_bind_template_callback(widget_class,
+	                                        pidgin_about_dialog_response_cb);
 }
 
 static void
diff --git a/pidgin/resources/About/about.ui b/pidgin/resources/About/about.ui
--- a/pidgin/resources/About/about.ui
+++ b/pidgin/resources/About/about.ui
@@ -60,6 +60,7 @@
     <property name="resizable">False</property>
     <property name="window-position">center</property>
     <property name="type-hint">dialog</property>
+    <signal name="response" handler="pidgin_about_dialog_response_cb" swapped="no"/>
     <child internal-child="vbox">
       <object class="GtkBox">
         <property name="can-focus">False</property>
@@ -87,7 +88,6 @@
                 <property name="visible">True</property>
                 <property name="can-focus">True</property>
                 <property name="receives-default">True</property>
-                <signal name="clicked" handler="pidgin_about_dialog_close" object="PidginAboutDialog" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">True</property>
@@ -309,5 +309,8 @@
         </child>
       </object>
     </child>
+    <action-widgets>
+      <action-widget response="-7">close_button</action-widget>
+    </action-widgets>
   </template>
 </interface>
