File fixesproto-6.0.patch of Package fixesproto

diff -u -r fixesproto-5.0/fixesproto.pc.in fixesproto-6.0/fixesproto.pc.in
--- fixesproto-5.0/fixesproto.pc.in	2010-11-15 22:29:42.000000000 +0100
+++ fixesproto-6.0/fixesproto.pc.in	2021-10-28 11:09:06.574704000 +0200
@@ -1,10 +1,8 @@
 prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
 includedir=@includedir@
 
 Name: FixesProto
 Description: X Fixes extension headers
-Version: @PACKAGE_VERSION@
+Version: 6.0
 Cflags: -I${includedir}
 Requires: xextproto >= 7.0.99.1
diff -u -r fixesproto-5.0/fixesproto.txt fixesproto-6.0/fixesproto.txt
--- fixesproto-5.0/fixesproto.txt	2011-02-23 17:47:21.000000000 +0100
+++ fixesproto-6.0/fixesproto.txt	2021-10-28 11:09:22.137906000 +0200
@@ -190,7 +190,7 @@
 	Servers supporting the X Input Extension Version 2.0 or higher only
 	notify the clients of cursor change events for the ClientPointer, not
 	of any other master pointer (see Section 4.4. in the XI2 protocol
-	specificiation).
+	specification).
 
 GetCursorImage
 
@@ -469,8 +469,8 @@
 		y-hot:			CARD16
 		cursor-serial:		CARD32
 		cursor-atom:		ATOM
-		cursor-name:		LISTofCARD8
 		cursor-image:		LISTofCARD32
+		cursor-name:		LISTofCARD8
 
 	This is similar to GetCursorImage except for including both
 	the atom and name of the current cursor.
@@ -525,20 +525,14 @@
 
 	A client sends this request to indicate that it wants the
 	cursor image to be hidden (i.e. to not be displayed) when
-	the sprite is inside the specified window, or one of its
-	subwindows. If the sprite is inside a window for which one
-	or more active clients have requested cursor hiding then the
-	cursor image will not be displayed.
+	the sprite is on the same screen as the specified window.
+	The sprite will be hidden if one or more clients have called
+	HideCursor and not ShowCursor.
 
 	Note that even though cursor hiding causes the cursor image
 	to be invisible, CursorNotify events will still be sent
 	normally, as if the cursor image were visible.
 
-	If, during a grab, one or more active clients have requested
-	cursor hiding for grab window, or one of its ancestors, the
-	cursor image of the grab cursor will not be displayed during
-	the lifetime of that grab.
-
 	When a client with outstanding cursor hiding requests
 	terminates its connection these requests will be deleted.
 
@@ -552,13 +546,9 @@
 		window:			WINDOW
 
 	A client sends this request to indicate that it wants the
-	cursor image to be displayed when the sprite is inside the
-	specified window, or one of its subwindows. If the sprite
-	is inside a window for which no active clients have requested
-	cursor hiding then the cursor image for that window will be
-	displayed. In other words, if a client calls HideCursor for
-	a specified window, or window subtree, this request reverses
-	the effects of the HideCursor request.
+	cursor image to be displayed when the sprite is on the same
+	screen as the specified window. The sprite will be hidden
+	if one or more clients have called HideCursor and not ShowCursor.
 
 	If the client has made no outstanding HideCursor requests
 	a BadMatch error is generated.
@@ -606,13 +596,13 @@
 CreatePointerBarrier
 
 		barrier:		    BARRIER
-		drawable:		    DRAWABLE
+		window:			    Window
 		x1, y2, x2, y2:		    INT16
 		directions:		    CARD32
 		devices:		    LISTofDEVICEID
 
 	Creates a pointer barrier along the line specified by the given
-	coordinates on the screen associated with the given drawable.  The
+	coordinates on the screen associated with the given window.  The
 	barrier has no spatial extent; it is simply a line along the left
 	or top edge of the specified pixels.  Barrier coordinates are in
 	screen space.
@@ -650,6 +640,63 @@
 
 	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
diff -u -r fixesproto-5.0/xfixesproto.h fixesproto-6.0/xfixesproto.h
--- fixesproto-5.0/xfixesproto.h	2011-02-23 17:47:21.000000000 +0100
+++ fixesproto-6.0/xfixesproto.h	2021-10-28 11:09:54.950687000 +0200
@@ -69,18 +69,18 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
+    CARD16  length;
 } xXFixesReq;
 
-/* 
+/*
  * requests and replies
  */
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    CARD32  majorVersion B32;
-    CARD32  minorVersion B32;
+    CARD16  length;
+    CARD32  majorVersion;
+    CARD32  minorVersion;
 } xXFixesQueryVersionReq;
 
 #define sz_xXFixesQueryVersionReq   12
@@ -88,14 +88,14 @@
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    CARD32  majorVersion B32;
-    CARD32  minorVersion B32;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
-    CARD32  pad4 B32;
-    CARD32  pad5 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    CARD32  majorVersion;
+    CARD32  minorVersion;
+    CARD32  pad2;
+    CARD32  pad3;
+    CARD32  pad4;
+    CARD32  pad5;
 } xXFixesQueryVersionReply;
 
 #define sz_xXFixesQueryVersionReply	32
@@ -103,7 +103,7 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
+    CARD16  length;
     BYTE    mode;	    /* SetModeInsert/SetModeDelete*/
     BYTE    target;	    /* SaveSetNearest/SaveSetRoot*/
     BYTE    map;	    /* SaveSetMap/SaveSetUnmap */
@@ -116,10 +116,10 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Window  window  B32;
-    Atom    selection B32;
-    CARD32  eventMask B32;
+    CARD16  length;
+    Window  window;
+    Atom    selection;
+    CARD32  eventMask;
 } xXFixesSelectSelectionInputReq;
 
 #define sz_xXFixesSelectSelectionInputReq   16
@@ -127,22 +127,22 @@
 typedef struct {
     CARD8   type;
     CARD8   subtype;
-    CARD16  sequenceNumber B16;
-    Window  window B32;
-    Window  owner B32;
-    Atom    selection B32;
-    Time    timestamp B32;
-    Time    selectionTimestamp B32;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
+    CARD16  sequenceNumber;
+    Window  window;
+    Window  owner;
+    Atom    selection;
+    Time    timestamp;
+    Time    selectionTimestamp;
+    CARD32  pad2;
+    CARD32  pad3;
 } xXFixesSelectionNotifyEvent;
 
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Window  window B32;
-    CARD32  eventMask B32;
+    CARD16  length;
+    Window  window;
+    CARD32  eventMask;
 } xXFixesSelectCursorInputReq;
 
 #define sz_xXFixesSelectCursorInputReq	12
@@ -150,20 +150,20 @@
 typedef struct {
     CARD8   type;
     CARD8   subtype;
-    CARD16  sequenceNumber B16;
-    Window  window B32;
-    CARD32  cursorSerial B32;
+    CARD16  sequenceNumber;
+    Window  window;
+    CARD32  cursorSerial;
     Time    timestamp;
-    Atom    name B32;	    /* Version 2 */
-    CARD32  pad1 B32;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
+    Atom    name;	    /* Version 2 */
+    CARD32  pad1;
+    CARD32  pad2;
+    CARD32  pad3;
 } xXFixesCursorNotifyEvent;
 
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
+    CARD16  length;
 } xXFixesGetCursorImageReq;
 
 #define sz_xXFixesGetCursorImageReq 4
@@ -171,17 +171,17 @@
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    INT16   x B16;
-    INT16   y B16;
-    CARD16  width B16;
-    CARD16  height B16;
-    CARD16  xhot B16;
-    CARD16  yhot B16;
-    CARD32  cursorSerial B32;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    INT16   x;
+    INT16   y;
+    CARD16  width;
+    CARD16  height;
+    CARD16  xhot;
+    CARD16  yhot;
+    CARD32  cursorSerial;
+    CARD32  pad2;
+    CARD32  pad3;
 } xXFixesGetCursorImageReply;
 
 #define sz_xXFixesGetCursorImageReply	32
@@ -193,8 +193,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
+    CARD16  length;
+    Region  region;
     /* LISTofRECTANGLE */
 } xXFixesCreateRegionReq;
 
@@ -203,9 +203,9 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
-    Pixmap  bitmap B32;
+    CARD16  length;
+    Region  region;
+    Pixmap  bitmap;
 } xXFixesCreateRegionFromBitmapReq;
 
 #define sz_xXFixesCreateRegionFromBitmapReq	12
@@ -213,12 +213,12 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
-    Window  window B32;
+    CARD16  length;
+    Region  region;
+    Window  window;
     CARD8   kind;
     CARD8   pad1;
-    CARD16  pad2 B16;
+    CARD16  pad2;
 } xXFixesCreateRegionFromWindowReq;
 
 #define sz_xXFixesCreateRegionFromWindowReq	16
@@ -226,9 +226,9 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
-    GContext gc B32;
+    CARD16  length;
+    Region  region;
+    GContext gc;
 } xXFixesCreateRegionFromGCReq;
 
 #define sz_xXFixesCreateRegionFromGCReq	12
@@ -236,9 +236,9 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
-    Picture picture B32;
+    CARD16  length;
+    Region  region;
+    Picture picture;
 } xXFixesCreateRegionFromPictureReq;
 
 #define sz_xXFixesCreateRegionFromPictureReq	12
@@ -246,8 +246,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
+    CARD16  length;
+    Region  region;
 } xXFixesDestroyRegionReq;
 
 #define sz_xXFixesDestroyRegionReq	8
@@ -255,8 +255,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
+    CARD16  length;
+    Region  region;
     /* LISTofRECTANGLE */
 } xXFixesSetRegionReq;
 
@@ -265,9 +265,9 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  source B32;
-    Region  destination B32;
+    CARD16  length;
+    Region  source;
+    Region  destination;
 } xXFixesCopyRegionReq;
 
 #define sz_xXFixesCopyRegionReq		12
@@ -275,10 +275,10 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  source1 B32;
-    Region  source2 B32;
-    Region  destination B32;
+    CARD16  length;
+    Region  source1;
+    Region  source2;
+    Region  destination;
 } xXFixesCombineRegionReq,
   xXFixesUnionRegionReq,
   xXFixesIntersectRegionReq,
@@ -292,11 +292,11 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  source B32;
-    INT16   x B16, y B16;
-    CARD16  width B16, height B16;
-    Region  destination B32;
+    CARD16  length;
+    Region  source;
+    INT16   x, y;
+    CARD16  width, height;
+    Region  destination;
 } xXFixesInvertRegionReq;
 
 #define sz_xXFixesInvertRegionReq	20
@@ -304,19 +304,19 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
-    INT16   dx B16, dy B16;
+    CARD16  length;
+    Region  region;
+    INT16   dx, dy;
 } xXFixesTranslateRegionReq;
 
 #define sz_xXFixesTranslateRegionReq	12
-    
+
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  source B32;
-    Region  destination B32;
+    CARD16  length;
+    Region  source;
+    Region  destination;
 } xXFixesRegionExtentsReq;
 
 #define sz_xXFixesRegionExtentsReq	12
@@ -324,8 +324,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  region B32;
+    CARD16  length;
+    Region  region;
 } xXFixesFetchRegionReq;
 
 #define sz_xXFixesFetchRegionReq	8
@@ -333,14 +333,14 @@
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    INT16   x B16, y B16;
-    CARD16  width B16, height B16;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
-    CARD32  pad4 B32;
-    CARD32  pad5 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    INT16   x, y;
+    CARD16  width, height;
+    CARD32  pad2;
+    CARD32  pad3;
+    CARD32  pad4;
+    CARD32  pad5;
 } xXFixesFetchRegionReply;
 
 #define sz_xXFixesFetchRegionReply	32
@@ -348,10 +348,10 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    GContext	gc B32;
-    Region  region B32;
-    INT16   xOrigin B16, yOrigin B16;
+    CARD16  length;
+    GContext	gc;
+    Region  region;
+    INT16   xOrigin, yOrigin;
 } xXFixesSetGCClipRegionReq;
 
 #define sz_xXFixesSetGCClipRegionReq	16
@@ -359,12 +359,12 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
+    CARD16  length;
     Window  dest;
     BYTE    destKind;
     CARD8   pad1;
-    CARD16  pad2 B16;
-    INT16   xOff B16, yOff B16;
+    CARD16  pad2;
+    INT16   xOff, yOff;
     Region  region;
 } xXFixesSetWindowShapeRegionReq;
 
@@ -373,10 +373,10 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Picture picture B32;
-    Region  region B32;
-    INT16   xOrigin B16, yOrigin B16;
+    CARD16  length;
+    Picture picture;
+    Region  region;
+    INT16   xOrigin, yOrigin;
 } xXFixesSetPictureClipRegionReq;
 
 #define sz_xXFixesSetPictureClipRegionReq   16
@@ -384,10 +384,10 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Cursor  cursor B32;
-    CARD16  nbytes B16;
-    CARD16  pad B16;
+    CARD16  length;
+    Cursor  cursor;
+    CARD16  nbytes;
+    CARD16  pad;
 } xXFixesSetCursorNameReq;
 
 #define sz_xXFixesSetCursorNameReq	    12
@@ -395,8 +395,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Cursor  cursor B32;
+    CARD16  length;
+    Cursor  cursor;
 } xXFixesGetCursorNameReq;
 
 #define sz_xXFixesGetCursorNameReq	    8
@@ -404,15 +404,15 @@
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    Atom    atom B32;
-    CARD16  nbytes B16;
-    CARD16  pad2 B16;
-    CARD32  pad3 B32;
-    CARD32  pad4 B32;
-    CARD32  pad5 B32;
-    CARD32  pad6 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    Atom    atom;
+    CARD16  nbytes;
+    CARD16  pad2;
+    CARD32  pad3;
+    CARD32  pad4;
+    CARD32  pad5;
+    CARD32  pad6;
 } xXFixesGetCursorNameReply;
 
 #define sz_xXFixesGetCursorNameReply	    32
@@ -420,7 +420,7 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
+    CARD16  length;
 } xXFixesGetCursorImageAndNameReq;
 
 #define sz_xXFixesGetCursorImageAndNameReq  4
@@ -428,18 +428,18 @@
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    INT16   x B16;
-    INT16   y B16;
-    CARD16  width B16;
-    CARD16  height B16;
-    CARD16  xhot B16;
-    CARD16  yhot B16;
-    CARD32  cursorSerial B32;
-    Atom    cursorName B32;
-    CARD16  nbytes B16;
-    CARD16  pad B16;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    INT16   x;
+    INT16   y;
+    CARD16  width;
+    CARD16  height;
+    CARD16  xhot;
+    CARD16  yhot;
+    CARD32  cursorSerial;
+    Atom    cursorName;
+    CARD16  nbytes;
+    CARD16  pad;
 } xXFixesGetCursorImageAndNameReply;
 
 #define sz_xXFixesGetCursorImageAndNameReply	32
@@ -447,9 +447,9 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Cursor  source B32;
-    Cursor  destination B32;
+    CARD16  length;
+    Cursor  source;
+    Cursor  destination;
 } xXFixesChangeCursorReq;
 
 #define sz_xXFixesChangeCursorReq	12
@@ -457,8 +457,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Cursor  source B32;
+    CARD16  length;
+    Cursor  source;
     CARD16  nbytes;
     CARD16  pad;
 } xXFixesChangeCursorByNameReq;
@@ -470,13 +470,13 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Region  source B32;
-    Region  destination B32;
-    CARD16  left B16;
-    CARD16  right B16;
-    CARD16  top B16;
-    CARD16  bottom B16;
+    CARD16  length;
+    Region  source;
+    Region  destination;
+    CARD16  left;
+    CARD16  right;
+    CARD16  top;
+    CARD16  bottom;
 } xXFixesExpandRegionReq;
 
 #define sz_xXFixesExpandRegionReq	20
@@ -486,8 +486,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Window  window B32;
+    CARD16  length;
+    Window  window;
 } xXFixesHideCursorReq;
 
 #define sz_xXFixesHideCursorReq	sizeof(xXFixesHideCursorReq)
@@ -495,8 +495,8 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Window  window B32;
+    CARD16  length;
+    Window  window;
 } xXFixesShowCursorReq;
 
 #define sz_xXFixesShowCursorReq	sizeof(xXFixesShowCursorReq)
@@ -508,16 +508,16 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Barrier barrier B32;
-    Window  window B32;
-    INT16   x1 B16;
-    INT16   y1 B16;
-    INT16   x2 B16;
-    INT16   y2 B16;
+    CARD16  length;
+    Barrier barrier;
+    Window  window;
+    INT16   x1;
+    INT16   y1;
+    INT16   x2;
+    INT16   y2;
     CARD32  directions;
-    CARD16  pad B16;
-    CARD16  num_devices B16;
+    CARD16  pad;
+    CARD16  num_devices;
     /* array of CARD16 devices */
 } xXFixesCreatePointerBarrierReq;
 
@@ -526,12 +526,46 @@
 typedef struct {
     CARD8   reqType;
     CARD8   xfixesReqType;
-    CARD16  length B16;
-    Barrier barrier B32;
+    CARD16  length;
+    Barrier barrier;
 } xXFixesDestroyPointerBarrierReq;
 
 #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
diff -u -r fixesproto-5.0/xfixeswire.h fixesproto-6.0/xfixeswire.h
--- fixesproto-5.0/xfixeswire.h	2011-02-23 17:47:21.000000000 +0100
+++ fixesproto-6.0/xfixeswire.h	2021-10-28 11:10:15.562761000 +0200
@@ -48,7 +48,7 @@
 #define _XFIXESWIRE_H_
 
 #define XFIXES_NAME	"XFIXES"
-#define XFIXES_MAJOR	5
+#define XFIXES_MAJOR	6
 #define XFIXES_MINOR	0
 
 /*************** Version 1 ******************/
@@ -89,8 +89,11 @@
 /*************** Version 5 ******************/
 #define X_XFixesCreatePointerBarrier	    31
 #define X_XFixesDestroyPointerBarrier	    32
+/*************** Version 6 ******************/
+#define X_XFixesSetClientDisconnectMode	    33
+#define X_XFixesGetClientDisconnectMode	    34
 
-#define XFixesNumberRequests		    (X_XFixesDestroyPointerBarrier+1)
+#define XFixesNumberRequests		    (X_XFixesGetClientDisconnectMode+1)
 
 /* Selection events share one event number */
 #define XFixesSelectionNotify		    0
@@ -136,4 +139,11 @@
 #define BarrierNegativeX		    (1L << 2)
 #define BarrierNegativeY		    (1L << 3)
 
+/*************** Version 6 ******************/
+
+/* The default server behaviour */
+#define XFixesClientDisconnectFlagDefault   0
+/* The server may disconnect this client to shut down */
+#define XFixesClientDisconnectFlagTerminate  (1L << 0)
+
 #endif	/* _XFIXESWIRE_H_ */
openSUSE Build Service is sponsored by