summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter/clutter/clutter-offscreen-effect.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/clutter/clutter/clutter-offscreen-effect.c b/clutter/clutter/clutter-offscreen-effect.c
index 02d0f4c06..12ab0f833 100644
--- a/clutter/clutter/clutter-offscreen-effect.c
+++ b/clutter/clutter/clutter-offscreen-effect.c
@@ -468,6 +468,19 @@ clutter_offscreen_effect_paint (ClutterEffect *effect,
}
static void
+clutter_offscreen_effect_notify (GObject *gobject,
+ GParamSpec *pspec)
+{
+ ClutterOffscreenEffect *offscreen_effect = CLUTTER_OFFSCREEN_EFFECT (gobject);
+ ClutterOffscreenEffectPrivate *priv = offscreen_effect->priv;
+
+ if (strcmp (pspec->name, "enabled") == 0)
+ g_clear_pointer (&priv->offscreen, cogl_object_unref);
+
+ G_OBJECT_CLASS (clutter_offscreen_effect_parent_class)->notify (gobject, pspec);
+}
+
+static void
clutter_offscreen_effect_finalize (GObject *gobject)
{
ClutterOffscreenEffect *self = CLUTTER_OFFSCREEN_EFFECT (gobject);
@@ -497,6 +510,7 @@ clutter_offscreen_effect_class_init (ClutterOffscreenEffectClass *klass)
effect_class->paint = clutter_offscreen_effect_paint;
gobject_class->finalize = clutter_offscreen_effect_finalize;
+ gobject_class->notify = clutter_offscreen_effect_notify;
}
static void