diff options
author | Neil Roberts <neil@linux.intel.com> | 2011-05-13 15:48:27 +0100 |
---|---|---|
committer | Neil Roberts <neil@linux.intel.com> | 2011-05-13 15:48:27 +0100 |
commit | a24fe849c864ef2e0ccc77c73a89cbb1d71e506f (patch) | |
tree | cd11a18388d4b0f344f8534fb1fcdd2f94a9d8cc | |
parent | 523a6c0820249cd934dff9ca4e0b1e3a86f30679 (diff) | |
download | clutter-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.c | 9 |
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); |