summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2011-05-13 15:48:27 +0100
committerNeil Roberts <neil@linux.intel.com>2011-05-13 15:48:27 +0100
commita24fe849c864ef2e0ccc77c73a89cbb1d71e506f (patch)
treecd11a18388d4b0f344f8534fb1fcdd2f94a9d8cc
parent523a6c0820249cd934dff9ca4e0b1e3a86f30679 (diff)
downloadclutter-a24fe849c864ef2e0ccc77c73a89cbb1d71e506f.tar.gz
clutter-actor: Store the queue redraw entry pointer
_clutter_stage_queue_actor_redraw returns a pointer to the ClutterStageQueueRedrawEntry struct which it allocates. The actor is expected to store a pointer to this so that it doesn't need to search the list of queued redraws next time a queue redraw is called. However _clutter_actor_queue_redraw_with_clip wasn't storing this pointer which meant that it thought every queue redraw was the first queue redraw. That meant that queueing a redraw with a clip would override any previous attempts to queue a redraw instead of trying to combine them. This is based on commit d95258e987178 in the master branch.
-rw-r--r--clutter/clutter-actor.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 343d69d13..1d36e6f03 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -5252,10 +5252,11 @@ _clutter_actor_queue_redraw_with_clip (ClutterActor *self,
stage = _clutter_actor_get_stage_internal (self);
if (stage != NULL)
- _clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
- self->priv->queue_redraw_entry,
- self,
- pv);
+ self->priv->queue_redraw_entry =
+ _clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
+ self->priv->queue_redraw_entry,
+ self,
+ pv);
if (should_free_pv)
clutter_paint_volume_free (pv);