[xlibs-commit] FixesExt ChangeLog,1.1,1.2 configure.ac,1.1,1.2 fixesext.pc.in,1.1,1.2 protocol,1.2,1.3 xfixesproto.h,1.2,1.3 xfixeswire.h,1.2,1.3

Keith Packard xlibs-commit@pdx.freedesktop.org
Sun, 02 Nov 2003 17:47:26 -0800


Committed by: keithp

Update of /cvs/xlibs/FixesExt
In directory pdx:/tmp/cvs-serv511

Modified Files:
	ChangeLog configure.ac fixesext.pc.in protocol xfixesproto.h 
	xfixeswire.h 
Log Message:
	* configure.ac:
	* fixesext.pc.in:
	* protocol:
	* xfixesproto.h:
	* xfixeswire.h:
	Merge xfixes_2_branch back to head


Index: ChangeLog
===================================================================
RCS file: /cvs/xlibs/FixesExt/ChangeLog,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ChangeLog	9 Oct 2003 01:48:22 -0000	1.1
+++ ChangeLog	3 Nov 2003 01:47:23 -0000	1.2
@@ -1,3 +1,24 @@
+2003-11-02  Keith Packard  <keithp@keithp.com>
+
+	* configure.ac:
+	* fixesext.pc.in:
+	* protocol:
+	* xfixesproto.h:
+	* xfixeswire.h:
+	Merge xfixes_2_branch back to head
+
+2003-10-19	Keith Packard	<keithp@keithp.com>
+
+	* configure.ac:
+	* fixesext.pc.in:
+	* protocol:
+	* xfixesproto.h:
+	* xfixeswire.h:
+	Update to version 2.0.
+	Add dependency on xextensions package
+	Add region requests and cursor names
+	
+
 2003-09-16  Anders Carlsson  <andersca@gnome.org>
 
 	* configure.ac:

Index: configure.ac
===================================================================
RCS file: /cvs/xlibs/FixesExt/configure.ac,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- configure.ac	9 Oct 2003 01:48:22 -0000	1.1
+++ configure.ac	3 Nov 2003 01:47:23 -0000	1.2
@@ -24,10 +24,12 @@
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
-AC_INIT([fixesext], [1.0], [keithp@keithp.com], fixesext)
+AC_INIT([fixesext], [2.0], [keithp@keithp.com], fixesext)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 
+PKG_CHECK_MODULES(XEXTENSIONS, xextensions)
+
 AC_OUTPUT([Makefile
            fixesext.pc])
 

Index: fixesext.pc.in
===================================================================
RCS file: /cvs/xlibs/FixesExt/fixesext.pc.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- fixesext.pc.in	9 Oct 2003 01:48:22 -0000	1.1
+++ fixesext.pc.in	3 Nov 2003 01:47:23 -0000	1.2
@@ -3,7 +3,7 @@
 libdir=@libdir@
 includedir=@includedir@
 
-Name: RandR
-Description: RandR extension headers
+Name: FixesExt
+Description: X Fixes extension headers
 Version: @PACKAGE_VERSION@
-Cflags: -I${includedir}
+Cflags: -I${includedir} @XEXTENSIONS_CFLAGS@

Index: protocol
===================================================================
RCS file: /cvs/xlibs/FixesExt/protocol,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- protocol	12 Jan 2003 02:44:25 -0000	1.2
+++ protocol	3 Nov 2003 01:47:23 -0000	1.3
@@ -1,8 +1,8 @@
                          The XFIXES Extension
-			    Version 1.0
-			     2002-11-30
+			    Version 2.0
+			     2003-10-15
 			    Keith Packard
-			  keithp@xfree86.org
+			  keithp@keithp.com
 
 1. Introduction
 
@@ -24,6 +24,8 @@
 
  +	Havoc Pennington 
 
+ +	Fredrik Höglund for cursor names
+
 3. Basic Premise
 
 Requests in this extension may seem to wander all over the map of X server
@@ -54,6 +56,8 @@
 	the clients responsibility to ensure that the server supports
 	a version which is compatible with its expectations.
 
+************* XFIXES VERSION 1 OR BETTER ***********
+
 5. Save Set processing changes
 
 Embedding one application within another provides a way of unifying
@@ -82,19 +86,22 @@
 so XFIXES also permits these windows to remain unmapped instead of being
 remapped.
 
+5.1 Requests
+
 ChangeSaveSet
 
-	window:				Window
-	mode:				{ Insert, Delete }
-	target:				{ Nearest, Root }
-	map:				{ Map, Unmap }
+		window:				Window
+		mode:				{ Insert, Delete }
+		target:				{ Nearest, Root }
+		map:				{ Map, Unmap }
 
-ChangeSaveSet is an extension of the core protocol ChangeSaveSet
-request.  As in that request, mode specifies whether the indicated
-window is inserted or deleted from the save-set.  Target specifies
-whether the window is reparented to the nearest non-client window as in the
-core protocol, or reparented to the root window.  Map specifies
-whether the window is mapped as in the core protocol or unmapped.
+	ChangeSaveSet is an extension of the core protocol ChangeSaveSet
+	request.  As in that request, mode specifies whether the indicated
+	window is inserted or deleted from the save-set.  Target specifies
+	whether the window is reparented to the nearest non-client window as
+	in the core protocol, or reparented to the root window.  Map
+	specifies whether the window is mapped as in the core protocol or
+	unmapped.
 
 6. Selection Tracking
 
@@ -102,10 +109,14 @@
 poll for selection changes.  XFIXES improves this by providing an event
 delivered whenever the selection ownership changes.
 
+6.1 Types
+
 	SELECTIONEVENT			{ SetSelectionOwner,
 					  SelectionWindowDestroy,
 					  SelectionClientClose }
 
+6.1 Events
+
 SelectionNotify
 
 	subtype:			SELECTIONEVENT
@@ -115,17 +126,20 @@
 	timestamp:			Timestamp
 	selection-timestamp:		Timestamp
 
+6.2 Requests
+
 SelectSelectionInput
 
-	window:				Window
-	selection:			Atom
-	event-mask:			SETofSELECTIONEVENT
+		window:				Window
+		selection:			Atom
+		event-mask:			SETofSELECTIONEVENT
 
-Selects for events to be delivered to window when various causes of
-ownership of selection occur.  Subtype indicates the cause of the selection
-ownership change.  Owner is set to the current selection owner, or None.
-Timestamp indicates the time the event was generated while
-selection-timestamp indicates the timestamp used to own the selection.
+	Selects for events to be delivered to window when various causes of
+	ownership of selection occur.  Subtype indicates the cause of the
+	selection ownership change.  Owner is set to the current selection
+	owner, or None.  Timestamp indicates the time the event was
+	generated while selection-timestamp indicates the timestamp used to
+	own the selection.
 
 7. Cursor Image Monitoring
 
@@ -141,53 +155,326 @@
 current cursor and provides a way to identify cursor images to avoid
 refetching the image each time it changes to a previously seen cursor.
 
+7.1 Types
 	CURSOREVENT			{ DisplayCursor }
 
+7.2 Events
+
 CursorNotify
 
 	subtype:		CURSOREVENT
 	window:			Window
 	cursor-serial:		CARD32
 	timestamp:		Timestamp
+	name:			Atom		(Version 2 only)
+
+7.3 Requests
 
 SelectCursorInput
 
-	window:			Window
-	event-mask:		SETofCURSOREVENT
+		window:			Window
+		event-mask:		SETofCURSOREVENT
 
-This request directs cursor change events to the named window.  Events will
-be delivered irrespective of the screen on which they occur.  Subtype
-indicates the cause of the cursor image change (there is only one subtype at
-present).  Cursor-serial is a number assigned to the cursor image which
-identifies the image.  Cursors with different serial numbers may have
-different images.  Timestamp is the time of the cursor change.
+	This request directs cursor change events to the named window.
+	Events will be delivered irrespective of the screen on which they
+	occur.  Subtype indicates the cause of the cursor image change
+	(there is only one subtype at present).  Cursor-serial is a number
+	assigned to the cursor image which identifies the image.  Cursors
+	with different serial numbers may have different images.  Timestamp
+	is the time of the cursor change.
 
 GetCursorImage
 
-	->
+		->
 
-	x:			INT16
-	y:			INT16
-	width:			CARD16
-	height:			CARD16
-	x-hot:			CARD16
-	y-hot:			CARD16
-	cursor-serial:		CARD32
-	cursor-image:		LISTofCARD32
+		x:			INT16
+		y:			INT16
+		width:			CARD16
+		height:			CARD16
+		x-hot:			CARD16
+		y-hot:			CARD16
+		cursor-serial:		CARD32
+		cursor-image:		LISTofCARD32
 
-GetCursorImage returns the image of the current cursor.  X and y are the
-current cursor position.  Width and height are the size of the cursor image.
-X-hot and y-hot mark the hotspot within the cursor image.  Cursor-serial
-provides the number assigned to this cursor image, this same serial number
-will be reported in a CursorNotify event if this cursor image is redisplayed
-in the future.
+	GetCursorImage returns the image of the current cursor.  X and y are
+	the current cursor position.  Width and height are the size of the
+	cursor image.  X-hot and y-hot mark the hotspot within the cursor
+	image.  Cursor-serial provides the number assigned to this cursor
+	image, this same serial number will be reported in a CursorNotify
+	event if this cursor image is redisplayed in the future.
 
-The cursor image itself is returned as a single image at 32 bits per pixel
-with 8 bits of alpha in the most significant 8 bits of the pixel followed by
-8 bits each of red, green and finally 8 bits of blue in the least significant
-8 bits.  The color components are pre-multiplied with the alpha component.
+	The cursor image itself is returned as a single image at 32 bits per
+	pixel with 8 bits of alpha in the most significant 8 bits of the
+	pixel followed by 8 bits each of red, green and finally 8 bits of
+	blue in the least significant 8 bits.  The color components are
+	pre-multiplied with the alpha component.
+	
+************* XFIXES VERSION 2 OR BETTER ***********
 
-8. Future compatibility
+8. Region Objects
+
+The core protocol doesn't expose regions as a primitive object and this
+makes many operations more complicated than they really need to be.  Adding
+region objects simplifies expose handling, the Shape extension and other
+operations. These operations are also designed to support a separate
+extension, the X Damage Extension.
+
+8.1 Types
+
+	Region:				XID
+	WINDOW_REGION_KIND:		{ Bounding, Clip }
+	
+8.2 Errors
+
+	Region				The specified region is invalid
+
+8.3 Requests
+
+CreateRegion
+
+		region:				REGION
+		rects:				LISTofRECTANGLE
+
+	Creates a region initialized to the specified list of rectangles.
+	The rectangles may be specified in any order, their union becomes
+	the region.  The core protocol allows applications to specify an
+	order for the rectangles, but it turns out to be just as hard to
+	verify the rectangles are actually in that order as it is to simply
+	ignore the ordering information and union them together.  Hence,
+	this request dispenses with the ordering information.
+
+	Errors: IDChoice
+
+CreateRegionFromBitmap
+
+		region:				REGION
+		bitmap:				PIXMAP
+
+	Creates a region initialized to the set of 'one' pixels in bitmap
+	(which must be depth 1, else Match error).
+
+	Errors: Pixmap, IDChoice, Match
+
+CreateRegionFromWindow
+
+		window:				Window
+		kind:				WINDOW_REGION_KIND
+		region:				Region
+
+	Creates a region initialized to the specified window region.  See the
+	Shape extension for the definition of Bounding and Clip regions.
+
+	Errors: Window, IDChoice, Value
+
+CreateRegionFromGC
+
+		gc:				GContext
+		region:				Region
+
+	Creates a region initialized from the clip list of the specified
+	GContext.
+
+	Errors: GContext, IDChoice
+
+CreateRegionFromPicture
+
+		picture:			Picture
+		region:				Region
+
+
+	Creates a region initialized from the clip list of the specified
+	Picture.
+
+	Errors: Picture, IDChoice
+
+DestroyRegion
+
+		region:				Region
+
+	Destroys the specified region.
+
+	Errors: Region
+
+SetRegion
+
+		region:				Region
+		rects:				LISTofRECTANGLE
+
+	This replaces the current contents of region with the region formed
+	by the union of rects.
+
+UnionRegion
+IntersectRegion
+SubtractRegion
+
+		source1:			Region or None
+		xOff1, yOff1:			INT16
+		source2:			Region or None
+		xOff2, yOff2:			INT16
+		destination:			Region
+	
+	Combines source1 and source2, placing the result in destination.
+	Destination may be the same as either source1 or source2.  If
+	source1 or source2 are None, the operation behaves as if an empty
+	region was specified.  xOff1, yOff1 are added to the coordinates of
+	source1 while xOff2 and yOff2 are added to the coordinates of
+	source2.
+
+	Errors: Region, Value
+	
+InvertRegion
+
+		source:				Region
+		xOff, yOff:			INT16
+		bounds:				RECTANGLE
+		destination:			Region
+	
+	The source region is offset by xOff, yOff and subtracted from the
+	region specified by bounds.  The result is placed in destination,
+	replacing its contents.
+
+	Errors: Region
+	
+RegionExtents
+
+		source:				Region
+		destination:			Region
+
+	The extents of the source region are placed in the destination
+
+FetchRegion
+
+		region:				Region
+		->
+		extents:			RECTANGLE
+		rectangles:			LISTofRECTANGLE
+
+	The region is returned as a list of rectangles in YX-banded order.
+
+	Errors: Region
+
+SetGCClipRegion
+
+		gc:				GCONTEXT
+		clip-x-origin, clip-y-origin:	INT16
+		region:				Region or None
+
+	This request changes clip-mask in gc to the specified region and
+	sets the clp origin.  Output will be clippped to remain contained
+	within the region.  The clip origin is interpreted relative to the
+	origin of whatever destination drawable is specified in a graphics
+	request.  The region is interpreted relative to the clip origin.
+	Future changes to region have no effect on the gc clip-mask.
+
+	Errors: GContext, Region
+
+SetWindowShapeRegion
+
+		dest:				Window
+		destKind:			SHAPE_KIND
+		xOff, yOff:			INT16
+		region:				Region or None
+
+	This request sets the specified (by destKind) Shape extension region
+	of the window to region, offset by xOff and yOff.   Future changes to
+	region have no effect on the window shape.
+
+	Errors: Window, Value, Region
+
+SetPictureClipRegion
+
+		picture:			Picture
+		clip-x-origin, clip-y-origin:	INT16
+		region:				Region or None
+
+	This request changes clip-mask in picture to the specified region
+	and sets the clip origin.  Input and output will be clipped to
+	remain contained within the region.  The clip origin is interpreted
+	relative to the origin of the drawable associated with picture.  The
+	region is interpreted relative to the clip origin.  Future changes
+	to region have no effect on the picture clip-mask.
+
+	Errors: Picture, Region
+
+9. Cursor Names
+
+Attaching names to cursors permits some abstract semantic content to be
+associated with specific cursor images.  Reflecting those names back to
+applications allows that semantic content to be related to the user through
+non-visual means.
+
+9.1 Events
+
+CursorNotify
+
+		subtype:		CURSOREVENT
+		window:			Window
+		cursor-serial:		CARD32
+		timestamp:		Timestamp
+		name:			Atom or None
+	
+	In Version 2 of the XFIXES protocol, this event adds the atom
+	of any name associated with the current cursor (else None).
+
+9.2 Requests
+
+SetCursorName
+
+		cursor:			CURSOR
+		name:			LISTofCARD8
+
+	This request interns name as an atom and sets that atom as the name
+	of cursor.
+
+	Errors: Cursor
+
+GetCursorName
+
+		cursor:			CURSOR
+		->
+		atom:			ATOM or None
+		name:			LISTofCARD8
+
+	This request returns the name and atom of cursor.  If no name is
+	set, atom is None and name is empty.
+
+	Errors: Cursor
+
+GetCursorImageAndName
+
+		->
+
+		x:			INT16
+		y:			INT16
+		width:			CARD16
+		height:			CARD16
+		x-hot:			CARD16
+		y-hot:			CARD16
+		cursor-serial:		CARD32
+		cursor-atom:		ATOM
+		cursor-name:		LISTofCARD8
+		cursor-image:		LISTofCARD32
+
+	This is similar to GetCursorImage except for including both
+	the atom and name of the current cursor.
+
+ChangeCursor
+
+		source, destination:	CURSOR
+
+	This request replaces all references to the destination with a
+	reference to source.  Any existing uses of the destination cursor
+	object will now show the source cursor image.
+
+ChangeCursorByName
+
+		src:			CURSOR
+		name:			LISTofCARD8
+
+	This request replaces the contents of all cursors with the specified
+	name with the src cursor.
+		
+99. Future compatibility
 
 This extension is not expected to remain fixed.  Future changes will
 strive to remain compatible if at all possible.  The X server will always

Index: xfixesproto.h
===================================================================
RCS file: /cvs/xlibs/FixesExt/xfixesproto.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xfixesproto.h	15 Jan 2003 02:54:56 -0000	1.2
+++ xfixesproto.h	3 Nov 2003 01:47:23 -0000	1.3
@@ -27,6 +27,9 @@
 
 #include <X11/Xmd.h>
 #include <X11/extensions/xfixeswire.h>
+#define _SHAPE_SERVER_
+#include <X11/extensions/shape.h>
+#undef _SHAPE_SERVER_
 
 #define Window CARD32
 #define Drawable CARD32
@@ -40,6 +43,15 @@
 #define Time CARD32
 #define KeyCode CARD8
 #define KeySym CARD32
+#define Picture CARD32
+
+/*************** Version 1 ******************/
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+} xXFixesReq;
 
 /* 
  * requests and replies
@@ -123,10 +135,10 @@
     Window  window B32;
     CARD32  cursorSerial B32;
     Time    timestamp;
+    Atom    name B32;	    /* Version 2 */
     CARD32  pad1 B32;
     CARD32  pad2 B32;
     CARD32  pad3 B32;
-    CARD32  pad4 B32;
 } xXFixesCursorNotifyEvent;
 
 typedef struct {
@@ -155,6 +167,270 @@
 
 #define sz_xXFixesGetCursorImageReply	32
 
+/*************** Version 2 ******************/
+
+#define Region CARD32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    /* LISTofRECTANGLE */
+} xXFixesCreateRegionReq;
+
+#define sz_xXFixesCreateRegionReq	8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Pixmap  bitmap B32;
+} xXFixesCreateRegionFromBitmapReq;
+
+#define sz_xXFixesCreateRegionFromBitmapReq	12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Window  window B32;
+    CARD8   kind;
+    CARD8   pad1;
+    CARD16  pad2 B16;
+} xXFixesCreateRegionFromWindowReq;
+
+#define sz_xXFixesCreateRegionFromWindowReq	16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    GContext gc B32;
+} xXFixesCreateRegionFromGCReq;
+
+#define sz_xXFixesCreateRegionFromGCReq	12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Picture picture B32;
+} xXFixesCreateRegionFromPictureReq;
+
+#define sz_xXFixesCreateRegionFromPictureReq	12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+} xXFixesDestroyRegionReq;
+
+#define sz_xXFixesDestroyRegionReq	8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    /* LISTofRECTANGLE */
+} xXFixesSetRegionReq;
+
+#define sz_xXFixesSetRegionReq		8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source1 B32;
+    INT16   xOff1 B16, yOff1 B16;
+    Region  source2 B32;
+    INT16   xOff2 B16, yOff2 B16;
+    Region  destination B32;
+} xXFixesCombineRegionReq,
+  xXFixesUnionRegionReq,
+  xXFixesIntersectRegionReq,
+  xXFixesSubtractRegionReq;
+
+#define sz_xXFixesCombineRegionReq	24
+#define sz_xXFixesUnionRegionReq	sz_xXFixesCombineRegionReq
+#define sz_xXFixesIntersectRegionReq	sz_xXFixesCombineRegionReq
+#define sz_xXFixesSubtractRegionReq	sz_xXFixesCombineRegionReq
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    INT16   xOff B16, yOff B16;
+    INT16   x B16, y B16;
+    CARD16  width B16, height B16;
+    Region  destination B32;
+} xXFixesInvertRegionReq;
+
+#define sz_xXFixesInvertRegionReq	24
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    Region  destination B32;
+} xXFixesRegionExtentsReq;
+
+#define sz_xXFixesRegionExtentsReq	12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+} xXFixesFetchRegionReq;
+
+#define sz_xXFixesFetchRegionReq	8
+
+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;
+} xXFixesFetchRegionReply;
+
+#define sz_xXFixesFetchRegionReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    GContext	gc B32;
+    Region  region B32;
+    INT16   xOrigin B16, yOrigin B16;
+} xXFixesSetGCClipRegionReq;
+
+#define sz_xXFixesSetGCClipRegionReq	16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  dest;
+    BYTE    destKind;
+    CARD8   pad1;
+    CARD16  pad2 B16;
+    INT16   xOff B16, yOff B16;
+    Region  region;
+} xXFixesSetWindowShapeRegionReq;
+
+#define sz_xXFixesSetWindowShapeRegionReq	20
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Picture picture B32;
+    Region  region B32;
+    INT16   xOrigin B16, yOrigin B16;
+} xXFixesSetPictureClipRegionReq;
+
+#define sz_xXFixesSetPictureClipRegionReq   16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  cursor B32;
+    CARD16  nbytes B16;
+    CARD16  pad B16;
+} xXFixesSetCursorNameReq;
+
+#define sz_xXFixesSetCursorNameReq	    12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  cursor B32;
+} xXFixesGetCursorNameReq;
+
+#define sz_xXFixesGetCursorNameReq	    8
+
+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;
+} xXFixesGetCursorNameReply;
+
+#define sz_xXFixesGetCursorNameReply	    32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+} xXFixesGetCursorImageAndNameReq;
+
+#define sz_xXFixesGetCursorImageAndNameReq  4
+
+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;
+} xXFixesGetCursorImageAndNameReply;
+
+#define sz_xXFixesGetCursorImageAndNameReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  source B32;
+    Cursor  destination B32;
+} xXFixesChangeCursorReq;
+
+#define sz_xXFixesChangeCursorReq	12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  source B32;
+    CARD16  nbytes;
+    CARD16  pad;
+} xXFixesChangeCursorByNameReq;
+
+#define sz_xXFixesChangeCursorByNameReq	12
+
+#undef Region
+#undef Picture
 #undef Window
 #undef Drawable
 #undef Font

Index: xfixeswire.h
===================================================================
RCS file: /cvs/xlibs/FixesExt/xfixeswire.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xfixeswire.h	15 Jan 2003 02:54:57 -0000	1.2
+++ xfixeswire.h	3 Nov 2003 01:47:23 -0000	1.3
@@ -27,16 +27,39 @@
 #define _XFIXESWIRE_H_
 
 #define XFIXES_NAME	"XFIXES"
-#define XFIXES_MAJOR	1
+#define XFIXES_MAJOR	2
 #define XFIXES_MINOR	0
 
+/*************** Version 1 ******************/
 #define X_XFixesQueryVersion		    0
 #define X_XFixesChangeSaveSet		    1
 #define X_XFixesSelectSelectionInput	    2
 #define X_XFixesSelectCursorInput	    3
 #define X_XFixesGetCursorImage		    4
+/*************** Version 2 ******************/
+#define X_XFixesCreateRegion		    5
+#define X_XFixesCreateRegionFromBitmap	    6
+#define X_XFixesCreateRegionFromWindow	    7
+#define X_XFixesCreateRegionFromGC	    8
+#define X_XFixesCreateRegionFromPicture	    9
+#define X_XFixesDestroyRegion		    10
+#define X_XFixesSetRegion		    11
+#define X_XFixesUnionRegion		    12
+#define X_XFixesIntersectRegion		    13
+#define X_XFixesSubtractRegion		    14
+#define X_XFixesInvertRegion		    15
+#define X_XFixesRegionExtents		    16
+#define X_XFixesFetchRegion		    17
+#define X_XFixesSetGCClipRegion		    18
+#define X_XFixesSetWindowShapeRegion	    19
+#define X_XFixesSetPictureClipRegion	    20
+#define X_XFixesSetCursorName		    21
+#define X_XFixesGetCursorName		    22
+#define X_XFixesGetCursorImageAndName	    23
+#define X_XFixesChangeCursor		    24
+#define X_XFixesChangeCursorByName	    25
 
-#define XFixesNumberRequests		    (X_XFixesGetCursorImage+1)
+#define XFixesNumberRequests		    (X_XFixesChangeCursorByName+1)
 
 /* Selection events share one event number */
 #define XFixesSelectionNotify		    0
@@ -59,7 +82,9 @@
 
 #define XFixesNumberEvents		    (2)
 
-#define XFixesNumberErrors		    (0)
+/* errors */
+#define BadRegion			    0
+#define XFixesNumberErrors		    (BadRegion+1)
 
 #define SaveSetNearest			    0
 #define SaveSetRoot			    1
@@ -67,4 +92,9 @@
 #define SaveSetMap			    0
 #define SaveSetUnmap			    1
 
+/*************** Version 2 ******************/
+
+#define WindowRegionBounding		    0
+#define WindowRegionClip		    1
+
 #endif	/* _XFIXESWIRE_H_ */