mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-04 17:50:18 +00:00
viewport: Free gadgets in finalize
This is the right place for this.
This commit is contained in:
parent
b4ebe4e5c1
commit
c8cab6a79a
@ -103,6 +103,7 @@ static void gtk_viewport_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gtk_viewport_finalize (GObject *object);
|
||||
static void gtk_viewport_destroy (GtkWidget *widget);
|
||||
static void gtk_viewport_realize (GtkWidget *widget);
|
||||
static void gtk_viewport_unrealize (GtkWidget *widget);
|
||||
@ -374,6 +375,7 @@ gtk_viewport_class_init (GtkViewportClass *class)
|
||||
|
||||
gobject_class->set_property = gtk_viewport_set_property;
|
||||
gobject_class->get_property = gtk_viewport_get_property;
|
||||
gobject_class->finalize = gtk_viewport_finalize;
|
||||
|
||||
widget_class->destroy = gtk_viewport_destroy;
|
||||
widget_class->realize = gtk_viewport_realize;
|
||||
@ -575,13 +577,22 @@ gtk_viewport_destroy (GtkWidget *widget)
|
||||
viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_HORIZONTAL);
|
||||
viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_VERTICAL);
|
||||
|
||||
g_clear_object (&priv->gadget);
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_viewport_parent_class)->destroy (widget);
|
||||
|
||||
g_clear_pointer (&priv->pixel_cache, _gtk_pixel_cache_free);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_viewport_finalize (GObject *object)
|
||||
{
|
||||
GtkViewport *viewport = GTK_VIEWPORT (object);
|
||||
GtkViewportPrivate *priv = viewport->priv;
|
||||
|
||||
g_clear_object (&priv->gadget);
|
||||
|
||||
G_OBJECT_CLASS (gtk_viewport_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_viewport_get_hadjustment:
|
||||
* @viewport: a #GtkViewport.
|
||||
|
Loading…
Reference in New Issue
Block a user