From ec5444f541a5126de253e0462b68e8805ed09033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Tue, 25 Jun 2024 11:58:52 +0200 Subject: [PATCH] wayland/actor-surface: Don't sync actor state for frozen actors This ensures that sub-surfaces remain visible during the fade-out animation of their window. Fixes: be4bf8da9ca8 ("wayland/surface: Keep applied sub-surface branch node linked up") Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3508 Part-of: (cherry picked from commit fab78d951a5f462f9f69511b8e790bb56024d972) --- src/wayland/meta-wayland-actor-surface.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c index ec6c72c29..ba3539869 100644 --- a/src/wayland/meta-wayland-actor-surface.c +++ b/src/wayland/meta-wayland-actor-surface.c @@ -289,6 +289,11 @@ meta_wayland_actor_surface_sync_actor_state (MetaWaylandActorSurface *actor_surf { MetaWaylandActorSurfaceClass *actor_surface_class = META_WAYLAND_ACTOR_SURFACE_GET_CLASS (actor_surface); + MetaWaylandActorSurfacePrivate *priv = + meta_wayland_actor_surface_get_instance_private (actor_surface); + + if (priv->actor && meta_surface_actor_is_frozen (priv->actor)) + return; actor_surface_class->sync_actor_state (actor_surface); }