clutter-actor: Store the queue_redraw_entry when queueing a redraw
_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_full 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 or an effect would override any previous attempts to queue a redraw instead of trying to combine them. I think this happened because the old queue_redraw_with_clip also didn't store the pointer and queue_redraw_full was based on that.
This commit is contained in:
parent
701440efd8
commit
d95258e987
@ -5511,6 +5511,7 @@ _clutter_actor_queue_redraw_full (ClutterActor *self,
|
|||||||
|
|
||||||
was_dirty = priv->queue_redraw_entry != NULL;
|
was_dirty = priv->queue_redraw_entry != NULL;
|
||||||
|
|
||||||
|
self->priv->queue_redraw_entry =
|
||||||
_clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
|
_clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
|
||||||
priv->queue_redraw_entry,
|
priv->queue_redraw_entry,
|
||||||
self,
|
self,
|
||||||
|
Loading…
Reference in New Issue
Block a user