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>
This commit is contained in:
Robert Mader 2023-02-11 07:03:37 +01:00
parent 2d5dd06a50
commit fe17dbc322

View File

@ -308,19 +308,14 @@ meta_wayland_actor_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
MetaWaylandActorSurfacePrivate *priv = MetaWaylandActorSurfacePrivate *priv =
meta_wayland_actor_surface_get_instance_private (actor_surface); meta_wayland_actor_surface_get_instance_private (actor_surface);
if (!wl_list_empty (&pending->frame_callback_list) && if (priv->actor && !wl_list_empty (&pending->frame_callback_list))
priv->actor &&
!meta_surface_actor_is_obscured (priv->actor))
{ {
GList *l; ClutterStage *stage;
for (l = clutter_actor_peek_stage_views (CLUTTER_ACTOR (priv->actor)); l; stage =
l = l->next) CLUTTER_STAGE (clutter_actor_get_stage (CLUTTER_ACTOR (priv->actor)));
{ if (stage)
ClutterStageView *view = l->data; clutter_stage_schedule_update (stage);
clutter_stage_view_schedule_update (view);
}
} }
meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending); meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending);