]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-presence-chooser.c
Add a cancel button on the custom message diaog
[empathy.git] / libempathy-gtk / empathy-presence-chooser.c
index a8b69e02f8695a0e641ac22e98595c56385c772a..17a627389469736e6b07b0172d281505d1ba0490 100644 (file)
@@ -901,16 +901,27 @@ presence_chooser_dialog_setup (CustomMessageDialog *dialog)
 }
 
 static void
-presence_chooser_dialog_destroy_cb (GtkWidget           *widget,
-                                   CustomMessageDialog *dialog)
+presence_chooser_dialog_response_cb (GtkWidget           *widget,
+                                    gint                 response,
+                                    CustomMessageDialog *dialog)
 {
-       McPresence   state;
-       const gchar *text;
+       if (response == GTK_RESPONSE_APPLY) {
+               McPresence   state;
+               const gchar *text;
 
-       state = presence_chooser_dialog_get_selected (dialog);
-       text = gtk_entry_get_text (GTK_ENTRY (dialog->entry_message));
+               state = presence_chooser_dialog_get_selected (dialog);
+               text = gtk_entry_get_text (GTK_ENTRY (dialog->entry_message));
+
+               presence_chooser_set_state (state, text);
+       }
+
+       gtk_widget_destroy (widget);
+}
 
-       presence_chooser_set_state (state, text);
+static void
+presence_chooser_dialog_destroy_cb (GtkWidget           *widget,
+                                   CustomMessageDialog *dialog)
+{
 
        g_free (dialog);
        message_dialog = NULL;
@@ -938,7 +949,7 @@ presence_chooser_dialog_show (void)
        empathy_glade_connect (glade,
                               message_dialog,
                               "custom_message_dialog", "destroy", presence_chooser_dialog_destroy_cb,
-                              "custom_message_dialog", "response", gtk_widget_destroy,
+                              "custom_message_dialog", "response", presence_chooser_dialog_response_cb,
                               "combobox_status", "changed", presence_chooser_dialog_status_changed_cb,
                               "checkbutton_save", "toggled", presence_chooser_dialog_save_toggled_cb,
                               NULL);