xwayland: Update regions on texture updates

For X11 clients running on Wayland, the actual texture is set by
Xwayland.

The shape, input and opaque regions, however are driven by X11
properties meaning that those may come at a different time than the
actual update of the content.

This results in black areas being visible at times on resize with
Xwayland clients.

To make sure we update all the regions at the same time the buffer is
updated, update the shape, input and opaque regions when the texture is
committed from when the Xwayland surface state is synchronized.

That fixes the remaining black areas being sometimes visible when
resizing client-side decorations windows on Xwayland.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/1007
https://gitlab.gnome.org/GNOME/mutter/merge_requests/1091
This commit is contained in:
Olivier Fourdan 2020-03-03 10:31:51 +01:00
parent 304a103659
commit 0b102afb53

View File

@ -232,7 +232,13 @@ meta_xwayland_surface_sync_actor_state (MetaWaylandActorSurface *actor_surface)
META_WAYLAND_ACTOR_SURFACE_CLASS (meta_xwayland_surface_parent_class); META_WAYLAND_ACTOR_SURFACE_CLASS (meta_xwayland_surface_parent_class);
if (xwayland_surface->window) if (xwayland_surface->window)
actor_surface_class->sync_actor_state (actor_surface); {
MetaWindowActor *window_actor =
meta_window_actor_from_window (xwayland_surface->window);
actor_surface_class->sync_actor_state (actor_surface);
meta_window_actor_update_regions (window_actor);
}
} }
static void static void