Bill Skaggs <weskaggs@primate.ucdavis.edu>

* app/dialogs/info-dialog.c: disconnect callbacks to prevent crash
	when destroying dialog, fixes bug #163617.
This commit is contained in:
William Skaggs 2005-01-18 17:57:10 +00:00
parent 9f527b8255
commit c4d65e756d
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-01-18 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/dialogs/info-dialog.c: disconnect callbacks to prevent crash
when destroying dialog, fixes bug #163617.
2005-01-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: added new function

View File

@ -56,6 +56,8 @@ static void info_dialog_field_new (InfoDialog *idialog,
GCallback callback,
gpointer callback_data);
static void info_dialog_update_field (InfoField *info_field);
static void info_dialog_field_free (gpointer data,
gpointer user_data);
/* public functions */
@ -92,12 +94,24 @@ info_dialog_notebook_new (GimpViewable *viewable,
help_func, help_data, TRUE);
}
static void
info_dialog_field_free (gpointer data,
gpointer user_data)
{
InfoField *field = data;
g_signal_handlers_disconnect_by_func (field->obj,
field->callback,
field->callback_data);
g_free (field);
}
void
info_dialog_free (InfoDialog *idialog)
{
g_return_if_fail (idialog != NULL);
g_slist_foreach (idialog->field_list, (GFunc) g_free, NULL);
g_slist_foreach (idialog->field_list, (GFunc) info_dialog_field_free, NULL);
g_slist_free (idialog->field_list);
gtk_widget_destroy (idialog->shell);