summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Mader <robert.mader@collabora.com>2023-02-11 07:03:37 +0100
committerFlorian Müllner <fmuellner@gnome.org>2023-04-25 14:21:58 +0000
commit6e5b4ab661ab2c27d5ebdf00bf065a9dc9d305ad (patch)
tree05adb43001ae03ed04d1cda4f54b172d6f7ce7df
parent9049383f3982caa0247a650480d2f06e01715ab9 (diff)
downloadmutter-6e5b4ab661ab2c27d5ebdf00bf065a9dc9d305ad.tar.gz
wayland/actor-surface: Always schedule stage updates on frame callbacks
There is an increasing number of cases where we want the frame callback logic to run for a stage-view and the complexity needed to avoid these, combined with the likelyhood of bugs, arguably does not justify the benefit any more. Thus unconditionally schedule updates for all stage-views when frame callbacks are requested. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2789> (cherry picked from commit fe17dbc322480d811d0bbf256a26c7c4b1fa4110)
-rw-r--r--src/wayland/meta-wayland-actor-surface.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c
index 2b76d943a..ca4b0d7c8 100644
--- a/src/wayland/meta-wayland-actor-surface.c
+++ b/src/wayland/meta-wayland-actor-surface.c
@@ -300,19 +300,14 @@ meta_wayland_actor_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
MetaWaylandActorSurfacePrivate *priv =
meta_wayland_actor_surface_get_instance_private (actor_surface);
- if (!wl_list_empty (&pending->frame_callback_list) &&
- priv->actor &&
- !meta_surface_actor_is_obscured (priv->actor))
+ if (priv->actor && !wl_list_empty (&pending->frame_callback_list))
{
- GList *l;
+ ClutterStage *stage;
- for (l = clutter_actor_peek_stage_views (CLUTTER_ACTOR (priv->actor)); l;
- l = l->next)
- {
- ClutterStageView *view = l->data;
-
- clutter_stage_view_schedule_update (view);
- }
+ stage =
+ CLUTTER_STAGE (clutter_actor_get_stage (CLUTTER_ACTOR (priv->actor)));
+ if (stage)
+ clutter_stage_schedule_update (stage);
}
meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending);