summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2021-03-17 14:11:28 +0100
committerOlivier Fourdan <ofourdan@redhat.com>2021-07-22 09:46:18 +0200
commit78d0652ac33b774c824eaeff82d504e4fe618176 (patch)
tree7032eb3349e056daca890af86212ca35a72a573d
parentb51f95645f0dbbdeeb20b30774f66eb161b5ce37 (diff)
downloadxcb-proto-78d0652ac33b774c824eaeff82d504e4fe618176.tar.gz
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> Reviewed-by: Simon Ser <contact@emersion.fr>
-rw-r--r--src/xfixes.xml22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/xfixes.xml b/src/xfixes.xml
index 0a3d5ff..a01cd7b 100644
--- a/src/xfixes.xml
+++ b/src/xfixes.xml
@@ -26,7 +26,7 @@ authorization from the authors.
-->
<!-- This file describes version 4 of XFixes. -->
<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes"
- major-version="5" minor-version="0">
+ major-version="6" minor-version="0">
<import>xproto</import>
<import>render</import>
<import>shape</import>
@@ -359,4 +359,24 @@ authorization from the authors.
<request name="DeletePointerBarrier" opcode="32">
<field type="BARRIER" name="barrier" />
</request>
+
+ <!-- Version 6 -->
+
+ <enum name="ClientDisconnectFlags">
+ <item name="Default"><value>0</value></item>
+ <item name="Terminate"><bit>0</bit></item>
+ </enum>
+
+ <request name="SetClientDisconnectMode" opcode="33">
+ <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" />
+ </request>
+
+ <request name="GetClientDisconnectMode" opcode="34">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
</xcb>