From 62fa88e4739ec0f457847a514aad87a6340d715b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 16 Oct 2004 05:10:55 +0000 Subject: [PATCH] Don't leak the secondary dialogs. (#155084, Paolo Borelli) 2004-10-16 Matthias Clasen * gtk/gtkaboutdialog.c (gtk_about_dialog_destroy): Don't leak the secondary dialogs. (#155084, Paolo Borelli) --- ChangeLog | 3 +++ ChangeLog.pre-2-10 | 3 +++ ChangeLog.pre-2-6 | 3 +++ ChangeLog.pre-2-8 | 3 +++ gtk/gtkaboutdialog.c | 22 ++++++++++++++++++++++ 5 files changed, 34 insertions(+) diff --git a/ChangeLog b/ChangeLog index b04a2820d2..338f7391f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-10-16 Matthias Clasen + * gtk/gtkaboutdialog.c (gtk_about_dialog_destroy): Don't leak + the secondary dialogs. (#155084, Paolo Borelli) + * gtk/gtkhsv.c (gtk_hsv_expose): Fix redraw issues with the focus on the ring. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index b04a2820d2..338f7391f0 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,8 @@ 2004-10-16 Matthias Clasen + * gtk/gtkaboutdialog.c (gtk_about_dialog_destroy): Don't leak + the secondary dialogs. (#155084, Paolo Borelli) + * gtk/gtkhsv.c (gtk_hsv_expose): Fix redraw issues with the focus on the ring. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index b04a2820d2..338f7391f0 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,8 @@ 2004-10-16 Matthias Clasen + * gtk/gtkaboutdialog.c (gtk_about_dialog_destroy): Don't leak + the secondary dialogs. (#155084, Paolo Borelli) + * gtk/gtkhsv.c (gtk_hsv_expose): Fix redraw issues with the focus on the ring. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index b04a2820d2..338f7391f0 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,8 @@ 2004-10-16 Matthias Clasen + * gtk/gtkaboutdialog.c (gtk_about_dialog_destroy): Don't leak + the secondary dialogs. (#155084, Paolo Borelli) + * gtk/gtkhsv.c (gtk_hsv_expose): Fix redraw issues with the focus on the ring. diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c index 3d5fb0356a..12037e0937 100644 --- a/gtk/gtkaboutdialog.c +++ b/gtk/gtkaboutdialog.c @@ -114,6 +114,7 @@ static void gtk_about_dialog_set_property (GObject guint prop_id, const GValue *value, GParamSpec *pspec); +static void gtk_about_dialog_destroy (GtkObject *object); static void update_name_version (GtkAboutDialog *about); static GtkIconSet * icon_set_new_from_pixbufs (GList *pixbufs); static void activate_url (GtkWidget *widget, @@ -179,6 +180,7 @@ gtk_about_dialog_class_init (GtkAboutDialogClass *klass) object_class->get_property = gtk_about_dialog_get_property; object_class->finalize = gtk_about_dialog_finalize; + ((GtkObjectClass *)klass)->destroy = gtk_about_dialog_destroy; g_object_class_install_property (object_class, PROP_NAME, @@ -402,6 +404,26 @@ gtk_about_dialog_finalize (GObject *object) G_OBJECT_CLASS (gtk_about_dialog_parent_class)->finalize (object); } +static void +gtk_about_dialog_destroy (GtkObject *object) +{ + GtkAboutDialog *about = GTK_ABOUT_DIALOG (object); + GtkAboutDialogPrivate *priv = (GtkAboutDialogPrivate *)about->private_data; + + if (priv->credits_dialog) + { + gtk_widget_destroy (priv->credits_dialog); + priv->credits_dialog = NULL; + } + if (priv->license_dialog) + { + gtk_widget_destroy (priv->license_dialog); + priv->license_dialog = NULL; + } + + GTK_OBJECT_CLASS (gtk_about_dialog_parent_class)->destroy (object); +} + static void gtk_about_dialog_set_property (GObject *object, guint prop_id,