diff options
Diffstat (limited to 'shell/e-task-widget.c')
-rw-r--r-- | shell/e-task-widget.c | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/shell/e-task-widget.c b/shell/e-task-widget.c index ce936a5b10..e37ddc1e34 100644 --- a/shell/e-task-widget.c +++ b/shell/e-task-widget.c @@ -53,38 +53,52 @@ struct _ETaskWidgetPrivate { }; -/* GtkObject methods. */ +/* GObject methods. */ static void -impl_destroy (GtkObject *object) +impl_dispose (GObject *object) { ETaskWidget *task_widget; ETaskWidgetPrivate *priv; task_widget = E_TASK_WIDGET (object); - if (task_widget->priv) { - priv = task_widget->priv; - - g_free (priv->component_id); + if (priv->tooltips != NULL) { g_object_unref (priv->tooltips); + priv->tooltips = NULL; + } + if (priv->icon_pixbuf != NULL) { gdk_pixbuf_unref (priv->icon_pixbuf); - - g_free (priv); - task_widget->priv = NULL; + priv->icon_pixbuf = NULL; } - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); + (* G_OBJECT_CLASS (parent_class)->dispose) (object); +} + +static void +impl_finalize (GObject *object) +{ + ETaskWidget *task_widget; + ETaskWidgetPrivate *priv; + + task_widget = E_TASK_WIDGET (object); + priv = task_widget->priv; + + g_free (priv->component_id); + g_free (priv); + + (* G_OBJECT_CLASS (parent_class)->finalize) (object); } static void -class_init (GtkObjectClass *object_class) +class_init (GObjectClass *object_class) { parent_class = gtk_type_class (PARENT_TYPE); - object_class->destroy = impl_destroy; + object_class->dispose = impl_dispose; + object_class->finalize = impl_finalize; } static void |