diff options
author | Olivier Fourdan <ofourdan@redhat.com> | 2021-03-09 11:46:05 +0100 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2021-04-29 05:48:29 +0000 |
commit | b6bc35b845163de5ab2bfa9521bdf4d8aef28604 (patch) | |
tree | 18c1894e01cad39170ff0cdf2d0fbe7faaec7ffd /include/X11/extensions/xfixesproto.h | |
parent | 559141495b89e4964960ea6ba92322d9766883ff (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 'include/X11/extensions/xfixesproto.h')
-rw-r--r-- | include/X11/extensions/xfixesproto.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/X11/extensions/xfixesproto.h b/include/X11/extensions/xfixesproto.h index b18b306..96c1b21 100644 --- a/include/X11/extensions/xfixesproto.h +++ b/include/X11/extensions/xfixesproto.h @@ -532,6 +532,40 @@ typedef struct { #define sz_xXFixesDestroyPointerBarrierReq 8 +/*************** Version 6.0 ******************/ + +typedef struct { + CARD8 reqType; + CARD8 xfixesReqType; + CARD16 length; + CARD32 disconnect_mode; +} xXFixesSetClientDisconnectModeReq; + +#define sz_xXFixesSetClientDisconnectModeReq 8 + +typedef struct { + CARD8 reqType; + CARD8 xfixesReqType; + CARD16 length; +} xXFixesGetClientDisconnectModeReq; + +#define sz_xXFixesGetClientDisconnectModeReq 4 + +typedef struct { + BYTE type; /* X_Reply */ + CARD8 pad0; + CARD16 sequenceNumber; + CARD32 length; + CARD32 disconnect_mode; + CARD32 pad1; + CARD32 pad2; + CARD32 pad3; + CARD32 pad4; + CARD32 pad5; +} xXFixesGetClientDisconnectModeReply; + +#define sz_xXFixesGetClientDisconnectModeReply 32 + #undef Barrier #undef Region #undef Picture |