From 0be73bf4014074377dca13ae44e32ac47adaafec Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 1 Mar 2011 18:36:55 +0000 Subject: [PATCH] effect: Queue a redraw on :enabled changes ClutterEffect should queue a redraw if the :enabled property of its parent class ClutterActorMeta changes. http://bugzilla.clutter-project.org/show_bug.cgi?id=2587 --- clutter/clutter-effect.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/clutter/clutter-effect.c b/clutter/clutter-effect.c index c00fff67d..cf8775d02 100644 --- a/clutter/clutter-effect.c +++ b/clutter/clutter-effect.c @@ -199,9 +199,30 @@ clutter_effect_real_get_paint_volume (ClutterEffect *effect, return TRUE; } +static void +clutter_effect_notify (GObject *gobject, + GParamSpec *pspec) +{ + if (strcmp (pspec->name, "enabled") == 0) + { + ClutterActorMeta *meta = CLUTTER_ACTOR_META (gobject); + ClutterActor *actor = clutter_actor_meta_get_actor (meta); + + if (actor != NULL) + clutter_actor_queue_redraw (actor); + } + + if (G_OBJECT_CLASS (clutter_effect_parent_class)->notify != NULL) + G_OBJECT_CLASS (clutter_effect_parent_class)->notify (gobject, pspec); +} + static void clutter_effect_class_init (ClutterEffectClass *klass) { + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->notify = clutter_effect_notify; + klass->pre_paint = clutter_effect_real_pre_paint; klass->post_paint = clutter_effect_real_post_paint; klass->get_paint_volume = clutter_effect_real_get_paint_volume;