summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Dreßler <verdre@v0yd.nl>2020-07-02 18:41:43 +0200
committerCarlos Garnacho <carlosg@gnome.org>2020-10-20 15:27:43 +0000
commit734a7cc16f9fba91a4b21ce1f8defec0cfddcbc5 (patch)
treee464ab781ec8ce01420be25f512fb4dc31356a8c
parent345976192decbc4cbf2c6df1d18b713875a2cb7f (diff)
downloadmutter-734a7cc16f9fba91a4b21ce1f8defec0cfddcbc5.tar.gz
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
-rw-r--r--clutter/clutter/clutter-actor.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index f4b8b6178..df13566b3 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -1798,28 +1798,12 @@ clutter_actor_real_show (ClutterActor *self)
*/
clutter_actor_update_map_state (self, MAP_STATE_CHECK);
- /* we queue a relayout unless the actor is inside a
- * container that explicitly told us not to
- */
- if (priv->parent != NULL &&
- (!(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;
+ /* Avoid the early return in clutter_actor_queue_relayout() */
+ priv->needs_width_request = FALSE;
+ priv->needs_height_request = FALSE;
+ priv->needs_allocation = FALSE;
- 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);
- }
+ clutter_actor_queue_relayout (self);
}
static inline void