Olivier Fourdan
e167299f60
xfixes: Add ClientDisconnectMode
...
With Wayland compositors now being able to start Xwayland on demand, the
next logical step is to be able to stop Xwayland when there is no more
need for it.
The Xserver itself is capable of terminating itself once all X11 clients
are gone, yet in a typical full session, there are a number of X11
clients running continuously (e.g. the Xsettings daemon, IBus, etc.).
Those always-running clients will prevent the Xserver from terminating,
because the actual number of X11 clients will never drop to 0. Worse,
the X11 window manager of a Wayland compositor also counts as an X11
client, hence also preventing Xwayland from stopping.
Some compositors such as mutter use the XRes extension to query the X11
clients connected, match their PID with the actual executable name and
compare those with a list of executables that can be ignored when
deciding to kill the Xserver.
But that's not just clumsy, it is also racy, because a new X11 client
might initiate a connection the X11 server right when the compositor is
about to kill it.
To solve this issue directly at the Xserver level, this add new entries
to the XFixes extension to let the X11 clients themselves specify the
disconnect mode they expect.
Typically, those X11 daemon clients would specify the disconnect mode
XFixesClientDisconnectFlagTerminate to let the Xserver know that they
should not be accounted for when checking the remaining clients prior
to terminate.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-06-07 17:28:05 +02:00
..
.gitignore
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
busfault.h
Trap SIGBUS to handle truncated shared memory segments
2013-11-11 15:16:07 -08:00
callback.h
Avoid starting a comment with */*
2014-07-17 10:19:52 -07:00
client.h
closestr.h
Replace 'pointer' type with 'void *'
2014-01-12 10:24:11 -08:00
closure.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
colormap.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
colormapst.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
cursor.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
cursorstr.h
cursor: drop ARGB_CURSOR
2015-06-30 12:17:51 +10:00
dbus-core.h
xfree86: drop double-typedef of DBusConnection
2014-11-12 10:25:00 +10:00
displaymode.h
vidmode: move display mode definitions
2016-02-29 16:28:57 -05:00
dix-config-apple-verbatim.h
dix-config.h.in
xquartz: Remove check for libdispatch now that we don't support pre-SnowLeopard
2021-02-01 16:21:39 -08:00
dix.h
Implement gesture processing logic
2021-05-30 13:26:42 +03:00
dixaccess.h
dixevents.h
dixfont.h
include: Stop including <X11/fonts/fontproto.h>
2018-10-25 12:32:48 -04:00
dixfontstr.h
dix: Switch to the libXfont2 API (v2)
2016-07-18 15:25:59 -04:00
dixgrabs.h
xi: Implement grab support for new gesture event types
2021-05-30 13:26:32 +03:00
dixstruct.h
os: Define {ReadFdFrom,WriteFdTo}Client unconditionally
2018-03-08 14:12:36 -05:00
eventconvert.h
dix: Add new internal event enums for gesture events
2021-05-30 13:26:30 +03:00
events.h
xi: Implement internal gesture event struct
2021-05-30 13:26:31 +03:00
eventstr.h
xi: Implement internal gesture event struct
2021-05-30 13:26:31 +03:00
exevents.h
xi: Implement grab support for new gesture event types
2021-05-30 13:26:32 +03:00
extension.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
extinit.h
miinitext: Load GLX on the mi path
2018-02-14 17:04:48 -05:00
extnsionst.h
dix: Remove extension aliases
2017-06-20 16:37:24 -04:00
fourcc.h
Consolidate fourcc.h
2020-09-15 11:43:16 +02:00
gc.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
gcstruct.h
fb: Remove 24bpp support (v3)
2017-03-17 15:14:42 -04:00
globals.h
miinitext: General cleanup (v2)
2018-01-22 17:28:12 -05:00
glx_extinit.h
miinitext: Load GLX on the mi path
2018-02-14 17:04:48 -05:00
glxvndabi.h
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
hotplug.h
config: Replace OdevAttributes linked list with struct
2014-07-17 17:10:48 -07:00
input.h
Implement gesture processing logic
2021-05-30 13:26:42 +03:00
inputstr.h
dix: Implement internal gesture state handling
2021-05-30 13:26:39 +03:00
inpututils.h
Implement gesture processing logic
2021-05-30 13:26:42 +03:00
list.h
Correct xorg_list_is_empty return value description
2018-02-12 08:09:53 +10:00
Makefile.am
Consolidate fourcc.h
2020-09-15 11:43:16 +02:00
meson.build
meson: switch getpeer* checks to autotools style
2021-04-09 16:44:27 +00:00
misc.h
include: Increase the number of max. input devices to 256.
2019-11-09 23:05:13 -05:00
miscstruct.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
nonsdk_extinit.h
Make PseudoramiXExtensionInit() prototype more generally available
2015-03-16 16:56:17 +00:00
opaque.h
dix: Remove -to option to set the default connection timeout
2019-10-30 16:17:04 +00:00
optionstr.h
os.h
os: Ensure sigset_t is provided when compiling for MinGW
2019-05-18 14:59:38 +00:00
pixmap.h
xserver/output: rename some badly named variables/APIs.
2020-07-10 06:17:44 +10:00
pixmapstr.h
xserver/output: rename some badly named variables/APIs.
2020-07-10 06:17:44 +10:00
privates.h
dix: Remove PRIVATE_DAMAGE
2017-03-21 11:20:26 -04:00
probes.h
dtrace: s/#if/#ifdef/ for XSERVER_DTRACE
2019-08-27 17:38:59 -04:00
property.h
dix: Add a callback chain for window property state change
2017-02-23 13:30:11 -05:00
propertyst.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
protocol-versions.h
xfixes: Add ClientDisconnectMode
2021-06-07 17:28:05 +02:00
ptrveloc.h
region.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
regionstr.h
dix: make RegionInit legal C++
2015-01-23 10:35:49 -08:00
registry.h
XSERVER_DTRACE needs request names from registry too
2014-09-22 12:00:46 -07:00
resource.h
dix: Fix undefined shift in HashResourceID
2019-10-15 14:06:21 -04:00
rgb.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
screenint.h
dix: De-ugly the prototype for Add{GPU,}Screen
2018-10-30 12:21:41 -04:00
scrnintstr.h
xserver/output: rename some badly named variables/APIs.
2020-07-10 06:17:44 +10:00
selection.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
servermd.h
dix: Fix image byte order on big endian hardware
2015-05-07 14:03:50 -04:00
swaprep.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
swapreq.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
systemd-logind.h
systemd-logind: let the logind code decided whether to close an fd
2014-05-05 07:26:33 +10:00
validate.h
version-config.h.in
vidmodestr.h
vidmode: build without xf86vidmodeproto
2016-03-01 11:25:59 -05:00
window.h
dix: Add hybrid full-size/empty-clip mode to SetRootClip
2016-02-22 13:26:31 -05:00
windowstr.h
dix: Remove WindowRec::backStorage
2019-04-12 21:53:03 +00:00
XIstubs.h
xkb-config.h.in
xkbfile.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
xkbrules.h
xkb: add a call to init an XkbRMLVOSet from const chars
2014-02-04 10:53:59 +10:00
xkbsrv.h
dix: Don't track the XKB client versions in the ClientRec
2017-10-24 15:53:28 -04:00
xkbstr.h
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
xorg-config.h.in
xorg: Remove the XF86PM define.
2018-08-02 10:27:37 -04:00
xorg-config.h.meson.in
xorg: Remove the XF86PM define.
2018-08-02 10:27:37 -04:00
xorg-server.h.in
xorg: Remove unused definitions from xorg-server.h.in
2018-03-28 09:54:17 -04:00
xorg-server.h.meson.in
meson: Generate xorg-server.h
2018-03-28 09:54:22 -04:00
Xprintf.h
xserver-properties.h
Add missing labels for multitouch valuators
2012-10-30 15:11:10 +10:00
Xserver.d
dtrace: Move Xserver.d from dix/ to include/
2019-08-27 17:38:54 -04:00
xserver_poll.h
Fix typo in error message
2019-01-10 18:40:20 +02:00
xsha1.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
xwayland-config.h.in
xwayland: Add glamor egl_backend for EGLStreams
2018-04-24 16:51:18 -04:00
xwayland-config.h.meson.in
xwayland: Add glamor egl_backend for EGLStreams
2018-04-24 16:51:18 -04:00
xwin-config.h.in
configure: Restore DEFAULT_LOGDIR to xwin-config.h, it is used
2014-06-02 13:07:46 +01:00
xwin-config.h.meson.in
Add meson.build for XWin server (v2)
2017-06-02 09:32:35 -07:00