clutter/actor: Properly detect uninitialized allocations when easing

Now that we have a proper way to mark our allocation as uninitialized,
make use of that and only disallow implicit transitions of the
"allocation" property if that is the case.

This fixes a bug where easing the allocation of an actor is impossible
when someone queued a relayout on it (or a child of it) before.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1290
This commit is contained in:
Jonas Dreßler 2020-06-05 23:13:11 +02:00
parent eb9cd3857d
commit 620dcf3364

View File

@ -19381,7 +19381,8 @@ should_skip_implicit_transition (ClutterActor *self,
* skip all transitions on the :allocation, to avoid actors "flying in"
* into their new position and size
*/
if (pspec == obj_props[PROP_ALLOCATION] && priv->needs_allocation)
if (pspec == obj_props[PROP_ALLOCATION] &&
!clutter_actor_box_is_initialized (&priv->allocation))
return TRUE;
/* if the actor is not mapped and is not part of a branch of the scene