Wire up the close button

Thu, 17 Aug 2017 22:22:04 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 17 Aug 2017 22:22:04 -0500
changeset 38666
c0bf67926a79
parent 38665
35676a9b7faa
child 38667
f8ae2ff1c19b

Wire up the close button

pidgin/about.ui file | annotate | diff | comparison | revisions
pidgin/pidginabout.c file | annotate | diff | comparison | revisions
--- a/pidgin/about.ui	Thu Aug 17 22:17:36 2017 -0500
+++ b/pidgin/about.ui	Thu Aug 17 22:22:04 2017 -0500
@@ -81,7 +81,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton">
+              <object class="GtkButton" id="close_button">
                 <property name="label" translatable="yes">Close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
--- a/pidgin/pidginabout.c	Thu Aug 17 22:17:36 2017 -0500
+++ b/pidgin/pidginabout.c	Thu Aug 17 22:22:04 2017 -0500
@@ -18,6 +18,7 @@
 #endif
 
 struct _PidginAboutDialogPrivate {
+	GtkWidget *close_button;
 	GtkWidget *application_name;
 	GtkWidget *stack;
 
@@ -478,6 +479,11 @@
  * Callbacks
  *****************************************************************************/
 static void
+_pidgin_about_dialog_close(GtkWidget *b, gpointer data) {
+	gtk_widget_destroy(GTK_WIDGET(data));
+}
+
+static void
 _pidgin_about_dialog_toggle_developers(GtkToggleButton *b, gpointer d) {
 	PidginAboutDialog *about = d;
 	gboolean show = FALSE;
@@ -530,6 +536,7 @@
 		"/im/pidgin/Pidgin/About/about.ui"
 	);
 
+	gtk_widget_class_bind_template_child_private(widget_class, PidginAboutDialog, close_button);
 	gtk_widget_class_bind_template_child_private(widget_class, PidginAboutDialog, application_name);
 	gtk_widget_class_bind_template_child_private(widget_class, PidginAboutDialog, stack);
 
@@ -559,6 +566,14 @@
 
 	gtk_widget_init_template(GTK_WIDGET(about));
 
+	/* wire up the close button */
+	g_signal_connect(
+		about->priv->close_button,
+		"clicked",
+		G_CALLBACK(_pidgin_about_dialog_close),
+		about
+	);
+
 	/* setup the application name label */
 	_pidgin_about_dialog_load_application_name(about);
 

mercurial