summaryrefslogtreecommitdiff
path: root/fixesproto.txt
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2021-03-09 11:46:05 +0100
committerPeter Hutterer <peter.hutterer@who-t.net>2021-04-29 05:48:29 +0000
commitb6bc35b845163de5ab2bfa9521bdf4d8aef28604 (patch)
tree18c1894e01cad39170ff0cdf2d0fbe7faaec7ffd /fixesproto.txt
parent559141495b89e4964960ea6ba92322d9766883ff (diff)
xfixes: Add ClientDisconnectMode
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. 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>
Diffstat (limited to 'fixesproto.txt')
-rw-r--r--fixesproto.txt57
1 files changed, 57 insertions, 0 deletions
diff --git a/fixesproto.txt b/fixesproto.txt
index ff083bc..28a6270 100644
--- a/fixesproto.txt
+++ b/fixesproto.txt
@@ -640,6 +640,63 @@ DestroyPointerBarrier
Errors: Barrier
+************* XFIXES VERSION 6 OR BETTER ***********
+
+13. Disconnect mode
+
+The X11 server is capable of terminating itself once all X11 clients are
+gone.
+
+Yet, in a typical user session, there are a number of X11 clients running
+continuously (e.g. Xsettings daemon, IBus, etc.). Those always-running
+clients will prevent the X11 server from terminating, because the actual
+number of X11 clients will never drop to 0.
+
+Disconnect mode allows the X11 clients themselves to specify that they
+should not be accounted for when checking the remaining clients prior
+to terminate the X11 server.
+
+This can be particularly useful for Wayland compositors which are able to
+start Xwayland on demand, as this allows Xwayland to terminate automatically
+when the relevant X11 clients have quit.
+
+13.1 Types
+
+ XFixesClientDisconnectFlags
+
+ XFixesClientDisconnectFlagDefault: 0
+ XFixesClientDisconnectFlagTerminate: 1 << 0
+
+ XFixesClientDisconnectFlagDefault is the default behavior for
+ regular clients, i.e. the X11 server won't terminate as long as such
+ clients are still connected.
+
+ XFixesClientDisconnectFlagTerminate indicates to the X11 server that
+ it can ignore the client and terminate itself even though the client
+ is still connected to the X11 server.
+
+13.2 Requests
+
+SetClientDisconnectMode
+
+ disconnect-mode: CARD32
+
+ Sets the disconnect mode for the client.
+
+ The disconnect-mode is a bit mask of XFixesClientDisconnectFlags.
+
+
+GetClientDisconnectMode
+
+ Gets the disconnect mode for the client.
+
+ ->
+
+ disconnect-mode: CARD32
+
+ The disconnect-mode is a bit mask of XFixesClientDisconnectFlags.
+
+
99. Future compatibility
This extension is not expected to remain fixed. Future changes will