aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorJoshua Ashton <joshua@froggi.es>2022-09-20 08:20:22 +0000
committerJoshua Ashton <joshua@froggi.es>2022-10-28 03:02:49 +0100
commit8d79352851199eeb4fe1ad7644c06502c1cb518f (patch)
treebf8b1181a522c8c5100caab4bf8336baeeed5d12 /meson.build
parente631010ab7b96988e7c64c24b7d90f64717eaeee (diff)
xwayland_shell_v1: New protocol
This protocol adds a xwayland_surface role which allows an Xwayland server to associate an X11 window to a wl_surface. Before this protocol, this would be done via the Xwayland server providing the wl_surface's resource id via the WL_SURFACE_ID atom on the X window. This was problematic as a race could occur if the wl_surface associated with a WL_SURFACE_ID for a window was destroyed before the update of the atom was processed by the compositor and another surface (or other object) had taken its id due to recycling. This protocol solves the problem by moving the X11 window to wl_surface association step to the Wayland side, which means that the association cannot happen out-of-sync with the resource lifetime of the wl_surface. This protocol avoids duplicating the race on the other side by adding a non-zero monotonic serial number which is entirely unique that is set on both the wl_surface (via. xwayland_surface_v1's associate method) and the X11 window (via. the `WL_SURFACE_SERIAL` atom) that can be used to associate them, and synchronize the two timelines. Signed-off-by: Joshua Ashton <joshua@froggi.es>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build1
1 files changed, 1 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index d575a65..3d8193b 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,7 @@ staging_protocols = {
'ext-session-lock': ['v1'],
'single-pixel-buffer': ['v1'],
'xdg-activation': ['v1'],
+ 'xwayland-shell': ['v1'],
}
protocol_files = []