XLibre Xserver
Go to file
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
.gitlab-ci ci: remove redundant slash in libxcvt repository url 2022-09-11 11:53:54 +00:00
Xext Xext: the check firstValuator ≤ 1 is duplicated in this branch 2022-04-02 18:06:30 +00:00
Xi dix: Correctly save replayed event into GrabInfoRec 2022-02-09 11:33:03 +00:00
composite Remove autotools support 2021-10-27 13:15:40 +03:00
config fdi2iclass: remove unused local variable 2022-04-02 18:06:30 +00:00
damageext Remove autotools support 2021-10-27 13:15:40 +03:00
dbe Remove autotools support 2021-10-27 13:15:40 +03:00
dix dix: Skip more code in SetRootClip for ROOT_CLIP_INPUT_ONLY 2022-09-12 10:51:05 +00:00
doc Remove autotools support 2021-10-27 13:15:40 +03:00
dri3 Remove autotools support 2021-10-27 13:15:40 +03:00
exa exa: fix "comparison is always false" 2022-04-02 18:06:30 +00:00
fb Remove autotools support 2021-10-27 13:15:40 +03:00
glamor glamor: fix free of uninitialised pointers 2021-12-03 20:54:46 +11:00
glx glx: remove a noop assert (index is unsigned) 2022-04-02 18:06:30 +00:00
hw xwayland: Delay wl_surface destruction 2022-09-28 17:00:48 +02:00
include xf86AutoConfig: try modesetting on all platforms we build it on 2022-09-20 18:26:03 +00:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Remove autotools support 2021-10-27 13:15:40 +03:00
mi mi: Use memcpy() instead of memmove() when buffers are known not to overlap 2022-08-29 21:10:51 +00:00
miext rootless: Dead code removal (ROOTLESS_REDISPLAY_DELAY is already defined) 2022-06-13 22:01:04 -07:00
os os: Restore buffer when writing to network 2022-09-09 16:52:43 +00:00
present present: Check for NULL to prevent crash 2022-01-19 10:23:20 -08:00
pseudoramiX Remove autotools support 2021-10-27 13:15:40 +03:00
randr randr: Correctly get physical size for screen with RandR 1.5 2022-08-09 07:17:07 +00:00
record record: Fix out of bounds access in SwapCreateRegister() 2021-12-14 15:00:00 +02:00
render render: Fix build with gcc 12 2022-01-25 16:16:30 +01:00
test test: Exclude two XTS xsetfontpath tests 2022-09-02 14:49:08 +02:00
xfixes xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier() 2021-12-14 15:00:01 +02:00
xkb xkb: Avoid length-check failure on empty strings. 2022-08-31 06:38:54 +00:00
.appveyor.yml appveyor: Add libxcvt build dep 2021-11-04 13:03:25 +00:00
.dir-locals.el .dir-locals.el: Add missing final newline 2019-10-01 17:05:28 +00:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
.gitlab-ci.yml ci: Move build job script to a separate file 2022-09-02 14:52:20 +02:00
.travis.yml travis: Add OSX meson build to matrix 2019-05-02 15:42:58 +00:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
README.md Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
meson.build xwayland: add support for the XWAYLAND extension 2022-08-11 10:30:32 +10:00
meson_options.txt meson: fix types for some build options 2022-09-08 22:34:11 +00:00
xorg-server.m4 xorg-server.m4: just all cflags instead of just sdkdir 2018-09-20 20:12:24 +01:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

X Server

The X server accepts requests from client applications to create windows, which are (normally rectangular) "virtual screens" that the client program can draw into.

Windows are then composed on the actual screen by the X server (or by a separate composite manager) as directed by the window manager, which usually communicates with the user via graphical controls such as buttons and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the following article: https://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the Xorg mailing list:

https://lists.freedesktop.org/mailman/listinfo/xorg

The primary development code repository can be found at:

https://gitlab.freedesktop.org/xorg/xserver

For patch submission instructions, see:

https://www.x.org/wiki/Development/Documentation/SubmittingPatches

As with other projects hosted on freedesktop.org, X.Org follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc:

https://www.freedesktop.org/wiki/CodeOfConduct