diff options
author | Robert Mader <robert.mader@collabora.com> | 2023-02-11 07:03:37 +0100 |
---|---|---|
committer | Florian Müllner <fmuellner@gnome.org> | 2023-04-25 14:21:58 +0000 |
commit | 6e5b4ab661ab2c27d5ebdf00bf065a9dc9d305ad (patch) | |
tree | 05adb43001ae03ed04d1cda4f54b172d6f7ce7df | |
parent | 9049383f3982caa0247a650480d2f06e01715ab9 (diff) | |
download | mutter-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.c | 17 |
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); |