Mercurial > pidgin
changeset 23315:26a1c551221b
Plug a little leak. We should not use 'delete_event' signal, because it
doesn't get emitted when the dialog gets destroyed from a
gtk_widget_destroy call. We should use the 'destroy' signal instead.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 07 Jun 2008 19:11:48 +0000 |
parents | 9c0ee2491ed1 |
children | 4a657f024a3a |
files | pidgin/gtksavedstatuses.c |
diffstat | 1 files changed, 7 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtksavedstatuses.c Sat Jun 07 18:42:48 2008 +0000 +++ b/pidgin/gtksavedstatuses.c Sat Jun 07 19:11:48 2008 +0000 @@ -717,8 +717,8 @@ } -static gboolean -status_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) +static void +status_editor_destroy_cb(GtkWidget *widget, gpointer user_data) { StatusEditor *dialog = user_data; @@ -726,19 +726,13 @@ g_free(dialog->original_title); g_object_unref(G_OBJECT(dialog->model)); g_free(dialog); - - return FALSE; } static void status_editor_cancel_cb(GtkButton *button, gpointer user_data) { StatusEditor *dialog = user_data; - - status_editor_remove_dialog(dialog); gtk_widget_destroy(dialog->window); - g_free(dialog->original_title); - g_free(dialog); } static void @@ -842,20 +836,11 @@ g_free(message); g_free(unformatted); - status_editor_remove_dialog(dialog); - gtk_widget_destroy(dialog->window); - g_free(dialog->original_title); - -/* - if (status_window != NULL) - add_status_to_saved_status_list(status_window->model, saved_status); -*/ - /* If they clicked on "Save & Use" or "Use," then activate the status */ if (button != dialog->save_button) purple_savedstatus_activate(saved_status); - g_free(dialog); + gtk_widget_destroy(dialog->window); } static void @@ -1133,7 +1118,7 @@ dialog->window = win = pidgin_create_dialog(_("Status"), PIDGIN_HIG_BORDER, "status", TRUE); - g_signal_connect(G_OBJECT(win), "delete_event", + g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(status_editor_destroy_cb), dialog); /* Setup the vbox */ @@ -1325,25 +1310,20 @@ } } -static gboolean -substatus_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) +static void +substatus_editor_destroy_cb(GtkWidget *widget, gpointer user_data) { SubStatusEditor *dialog = user_data; substatus_editor_remove_dialog(dialog); g_free(dialog); - - return FALSE; } static void substatus_editor_cancel_cb(GtkButton *button, gpointer user_data) { SubStatusEditor *dialog = user_data; - - substatus_editor_remove_dialog(dialog); gtk_widget_destroy(dialog->window); - g_free(dialog); } @@ -1361,7 +1341,6 @@ if (!gtk_combo_box_get_active_iter(dialog->box, &iter)) { gtk_widget_destroy(dialog->window); - g_free(dialog); return; } @@ -1389,7 +1368,6 @@ gtk_widget_destroy(dialog->window); g_free(id); g_free(message); - g_free(dialog); } static void @@ -1438,7 +1416,7 @@ dialog->window = win = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "substatus", TRUE); g_free(tmp); - g_signal_connect(G_OBJECT(win), "delete_event", + g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(substatus_editor_destroy_cb), dialog); /* Setup the vbox */