diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2020-04-27 15:43:19 +0200 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2020-05-26 16:46:57 +0200 |
commit | 066bc5986d04204788880e372f259d6048cc1ae6 (patch) | |
tree | d53e6b8750bf38904438ca702b55c47d674c1c80 /src/wayland/meta-wayland.h | |
parent | e8b09df8d2746eacd341b00160b02738e9e5e8a1 (diff) | |
download | mutter-066bc5986d04204788880e372f259d6048cc1ae6.tar.gz |
wayland: Drive frame callbacks from stage updates
Don't tie frame callbacks to actor painting, as it may end up in
situations where we miss sending frame callbacks when we should have. An
example of this is when a surface is partially off screen, and then
reports damage that is fully off screen. When this happen, we are likely
not to repaint anything, thus we won't send any frame callbacks even
though it's "suitable" for rendering again, as the surface is not on a
separate workspace or fully obscured.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/817
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1152
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1218
Diffstat (limited to 'src/wayland/meta-wayland.h')
-rw-r--r-- | src/wayland/meta-wayland.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h index 4164563e8..3549fb2d5 100644 --- a/src/wayland/meta-wayland.h +++ b/src/wayland/meta-wayland.h @@ -62,8 +62,11 @@ void meta_wayland_compositor_set_input_focus (MetaWaylandComp void meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor); -void meta_wayland_compositor_destroy_frame_callbacks (MetaWaylandCompositor *compositor, - MetaWaylandSurface *surface); +void meta_wayland_compositor_add_frame_callback_surface (MetaWaylandCompositor *compositor, + MetaWaylandSurface *surface); + +void meta_wayland_compositor_remove_frame_callback_surface (MetaWaylandCompositor *compositor, + MetaWaylandSurface *surface); META_EXPORT_TEST const char *meta_wayland_get_wayland_display_name (MetaWaylandCompositor *compositor); |