[actor] Force a relayout on set_parent()

The current code that handles the invariant that the new parent
of an actor needing a layout should also be queued for relayout
is hitting the short-circuiting we do in the queue_relayout()
method.

In order to fix this we can forcibly set the actor to need a
width/height request and an allocation; then we queue a relayout
on the parent.

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
This commit is contained in:
Chris Lord 2009-02-05 11:04:34 +00:00 committed by Emmanuele Bassi
parent 9cf02bfdb9
commit 6bc7f4c723

View File

@ -6098,7 +6098,15 @@ clutter_actor_set_parent (ClutterActor *self,
priv->needs_height_request ||
priv->needs_allocation)
{
clutter_actor_queue_relayout (self);
/* we work around the short-circuiting we do
* in clutter_actor_queue_relayout() since we
* want to force a relayout
*/
priv->needs_width_request = TRUE;
priv->needs_height_request = TRUE;
priv->needs_allocation = TRUE;
clutter_actor_queue_relayout (priv->parent_actor);
}
}