mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 03:20:46 -05:00
clutter/actor: Alway call queue_relayout() when showing actors
clutter_actor_queue_relayout() detects whether a parent has the NO_LAYOUT flag set by itself and then queues a shallow relayout for us. There's no need to duplicate that logic when showing actors, so simply call clutter_actor_queue_relayout() and let that handle it. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1366
This commit is contained in:
parent
345976192d
commit
734a7cc16f
@ -1798,28 +1798,12 @@ clutter_actor_real_show (ClutterActor *self)
|
|||||||
*/
|
*/
|
||||||
clutter_actor_update_map_state (self, MAP_STATE_CHECK);
|
clutter_actor_update_map_state (self, MAP_STATE_CHECK);
|
||||||
|
|
||||||
/* we queue a relayout unless the actor is inside a
|
/* Avoid the early return in clutter_actor_queue_relayout() */
|
||||||
* container that explicitly told us not to
|
priv->needs_width_request = FALSE;
|
||||||
*/
|
priv->needs_height_request = FALSE;
|
||||||
if (priv->parent != NULL &&
|
priv->needs_allocation = FALSE;
|
||||||
(!(priv->parent->flags & CLUTTER_ACTOR_NO_LAYOUT)))
|
|
||||||
{
|
|
||||||
/* While an actor is hidden the parent may not have
|
|
||||||
* allocated/requested so we need to start from scratch
|
|
||||||
* and avoid the short-circuiting in
|
|
||||||
* clutter_actor_queue_relayout().
|
|
||||||
*/
|
|
||||||
priv->needs_width_request = FALSE;
|
|
||||||
priv->needs_height_request = FALSE;
|
|
||||||
priv->needs_allocation = FALSE;
|
|
||||||
|
|
||||||
clutter_actor_queue_relayout (self);
|
clutter_actor_queue_relayout (self);
|
||||||
}
|
|
||||||
else /* but still don't leave the actor un-allocated before showing it */
|
|
||||||
{
|
|
||||||
clutter_actor_queue_shallow_relayout (self);
|
|
||||||
clutter_actor_queue_redraw (self);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
Loading…
Reference in New Issue
Block a user