xserver/hw/xwayland
Olivier Fourdan e37f18ee97 xwayland: Delay wl_surface destruction
X11 and Wayland requests are unordered, causing a race in the X11 window
and wl_surface association.

To mitigate that race, delay the wl_surface destruction by 1 second,
so that the compositor has time to establish the association before the
wl_surface is destroyed: to see both the wl_surface created and the
WL_SURFACE_ID X11 property set.

This is only a mitigation though, a more robust solution requires a
future dedicated Wayland protocol.

v2: Clean up pending wl_surface destroy on exit as well.

Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1157
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Suggested-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Joshua Ashton <joshua@froggi.es>
Tested-by: Sterophonick <sterophonick@gmail.com>
See-also: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/163
2022-09-28 17:00:48 +02:00
..
desktop xwayland: set the app_id and install a desktop launcher 2022-06-30 17:53:01 +02:00
man xwayland: add optional support for libdecor 2022-06-30 17:53:01 +02:00
.gitignore xwayland: Add wp_viewport wayland extension support 2019-10-12 12:19:14 +02:00
drm.xml wayland: Sync drm.xml with Mesa 2017-07-05 10:13:04 -04:00
meson.build xwayland: add optional support for libdecor 2022-06-30 17:53:01 +02:00
xwayland-cursor.c xwayland: Fix cursor color 2022-02-11 10:33:10 +01:00
xwayland-cursor.h xwayland: Add xwl_cursor_clear_frame_cb() 2021-10-25 12:05:42 +00:00
xwayland-cvt.c xwayland: Use libxcvt 2021-08-06 11:29:29 +00:00
xwayland-cvt.h xwayland: Move Xwayland CVT declaration 2019-12-20 16:19:01 +01:00
xwayland-drm-lease.c xwayland: make the output serials belong to the screen 2022-06-30 16:33:30 +02:00
xwayland-drm-lease.h Xwayland: implement drm-lease-v1 2021-12-07 10:02:29 +00:00
xwayland-glamor-eglstream.c xwayland/glamor: Change errors to verbose messages 2021-12-01 15:13:11 +01:00
xwayland-glamor-gbm.c xwayland/glamor: Change errors to verbose messages 2021-12-01 15:13:11 +01:00
xwayland-glamor-xv.c xwayland: Cleanup and remove `xwayland.h` 2019-12-20 16:19:01 +01:00
xwayland-glamor.c xwayland/eglstream: Prefer EGLstream if available 2021-12-02 08:13:49 +00:00
xwayland-glamor.h xwayland/glamor: Add return status to post_damage 2021-05-11 14:08:58 +02:00
xwayland-glx.c xwayland/glx: Flip order of sRGB & non-sRGB fbconfigs 2022-01-14 18:16:01 +01:00
xwayland-glx.h xwayland: Move Xwayland GLX declaration 2019-12-20 16:19:01 +01:00
xwayland-input.c xwayland: Add break statements in pointer_handle_axis 2022-08-19 11:18:21 +02:00
xwayland-input.h xwayland: Aggregate scroll axis events to fix kinetic scrolling 2022-07-04 07:10:25 +00:00
xwayland-output.c xwayland: update the Xwayland screen size first 2022-06-30 17:53:01 +02:00
xwayland-output.h xwayland: add xwl_output_from_wl_output() 2022-06-30 17:53:01 +02:00
xwayland-pixmap.c xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb 2020-07-07 13:47:11 +00:00
xwayland-pixmap.h xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb 2020-07-07 13:47:11 +00:00
xwayland-present.c xwayland/present: Do not send two idle notify events for flip pixmaps 2022-06-21 09:42:35 +00:00
xwayland-present.h xwayland: Always hook up frame_callback_list in xwl_present_queue_vblank 2022-03-17 10:22:34 +01:00
xwayland-screen.c xwayland: Delay wl_surface destruction 2022-09-28 17:00:48 +02:00
xwayland-screen.h xwayland: Delay wl_surface destruction 2022-09-28 17:00:48 +02:00
xwayland-shm.c xwayland/shm: Avoid integer overflow on large pixmaps 2021-10-05 10:00:02 +00:00
xwayland-shm.h xwayland: Move SHM declarations to their own header 2019-12-20 16:19:01 +01:00
xwayland-types.h Xwayland: implement drm-lease-v1 2021-12-07 10:02:29 +00:00
xwayland-vidmode.c xwayland: add a fixed geometry size for rootful 2022-06-30 17:52:22 +02:00
xwayland-vidmode.h xwayland: Move Xwayland vidmode declaration 2019-12-20 16:19:01 +01:00
xwayland-window-buffers.c xwayland: Hold window buffer until released 2020-12-10 13:49:42 +01:00
xwayland-window-buffers.h xwayland: Cleanup and remove `xwayland.h` 2019-12-20 16:19:01 +01:00
xwayland-window.c xwayland: Delay wl_surface destruction 2022-09-28 17:00:48 +02:00
xwayland-window.h xwayland: Delay wl_surface destruction 2022-09-28 17:00:48 +02:00
xwayland.c xwayland: add support for the XWAYLAND extension 2022-08-11 10:30:32 +10:00
xwayland.pc.in xwayland: add optional support for libdecor 2022-06-30 17:53:01 +02:00