summaryrefslogtreecommitdiff
path: root/clutter/clutter/clutter-actor.c
diff options
context:
space:
mode:
Diffstat (limited to 'clutter/clutter/clutter-actor.c')
-rw-r--r--clutter/clutter/clutter-actor.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index 59345a725..2e4b30eff 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -2646,9 +2646,10 @@ _clutter_actor_queue_redraw_on_clones (ClutterActor *self)
}
static void
-_clutter_actor_propagate_queue_redraw (ClutterActor *self,
- ClutterActor *origin)
+_clutter_actor_propagate_queue_redraw (ClutterActor *self)
{
+ ClutterActor *origin = self;
+
while (self)
{
/* no point in queuing a redraw on a destroyed actor */
@@ -2657,13 +2658,12 @@ _clutter_actor_propagate_queue_redraw (ClutterActor *self,
_clutter_actor_queue_redraw_on_clones (self);
+ self->priv->is_dirty = TRUE;
+
/* If the queue redraw is coming from a child then the actor has
become dirty and any queued effect is no longer valid */
if (self != origin)
- {
- self->priv->is_dirty = TRUE;
- self->priv->effect_to_redraw = NULL;
- }
+ self->priv->effect_to_redraw = NULL;
/* If the actor isn't visible, we still had to emit the signal
* to allow for a ClutterClone, but the appearance of the parent
@@ -8105,10 +8105,8 @@ _clutter_actor_queue_redraw_full (ClutterActor *self,
priv->effect_to_redraw = NULL;
}
- priv->is_dirty = TRUE;
-
if (!priv->propagated_one_redraw)
- _clutter_actor_propagate_queue_redraw (self, self);
+ _clutter_actor_propagate_queue_redraw (self);
}
/**