mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 11:30:45 -05:00
wayland/surface: Schedule updates in the context of the surface actor
This makes all stage updates that result from applying the pending state of a Wayland surface emit an "update-scheduled" signal in the context of the relevant surface actor. A common case where an "update-scheduled" signal is needed is when applying "empty" client commits. In this case a "repaint-scheduled" signal would not be emitted since the commit doesn't trigger a repaint. However, it is still important to add handling for such updates with variable refresh rate when the releavnt actor is also driving the refresh rate. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1154>
This commit is contained in:
parent
627ab24721
commit
7eb99ddef7
@ -303,14 +303,7 @@ meta_wayland_actor_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
|
|||||||
meta_wayland_actor_surface_get_instance_private (actor_surface);
|
meta_wayland_actor_surface_get_instance_private (actor_surface);
|
||||||
|
|
||||||
if (priv->actor && !wl_list_empty (&pending->frame_callback_list))
|
if (priv->actor && !wl_list_empty (&pending->frame_callback_list))
|
||||||
{
|
meta_surface_actor_schedule_update (priv->actor);
|
||||||
ClutterStage *stage;
|
|
||||||
|
|
||||||
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);
|
meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user