summaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2010-05-10 20:00:49 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2010-05-10 20:00:49 +0000
commit67769cf90ea1656e8087528aeecaa3e6554df477 (patch)
treeb40acef5c4b41cb2db2ccc01bfa3426ca5267af0 /proto
parent30c801bed16485a15fd328207c4b95bf533e42b2 (diff)
Update to fixesproto 4.1.1.
Diffstat (limited to 'proto')
-rw-r--r--proto/fixesproto/AUTHORS1
-rw-r--r--proto/fixesproto/COPYING2
-rw-r--r--proto/fixesproto/ChangeLog228
-rw-r--r--proto/fixesproto/INSTALL8
-rw-r--r--proto/fixesproto/Makefile.am36
-rw-r--r--proto/fixesproto/README26
-rw-r--r--proto/fixesproto/autogen.sh12
-rw-r--r--proto/fixesproto/configure.ac32
-rw-r--r--proto/fixesproto/fixesproto.pc.in5
-rw-r--r--proto/fixesproto/fixesproto.txt577
-rw-r--r--proto/fixesproto/xfixesproto.h10
-rw-r--r--proto/fixesproto/xfixeswire.h6
12 files changed, 905 insertions, 38 deletions
diff --git a/proto/fixesproto/AUTHORS b/proto/fixesproto/AUTHORS
new file mode 100644
index 000000000..8e18f9b42
--- /dev/null
+++ b/proto/fixesproto/AUTHORS
@@ -0,0 +1 @@
+Keith Packard, HP
diff --git a/proto/fixesproto/COPYING b/proto/fixesproto/COPYING
index e92fcd285..a97b6e6b2 100644
--- a/proto/fixesproto/COPYING
+++ b/proto/fixesproto/COPYING
@@ -1,5 +1,3 @@
-$Id: COPYING,v 1.1 2006/11/25 15:49:37 matthieu Exp $
-
Copyright © 2001,2003 Keith Packard
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/proto/fixesproto/ChangeLog b/proto/fixesproto/ChangeLog
index e55725159..7474b885a 100644
--- a/proto/fixesproto/ChangeLog
+++ b/proto/fixesproto/ChangeLog
@@ -1,11 +1,223 @@
-2006-3-13 Deron Johnson <deron.johnson@sun.com>
+commit 88cd481b5349fe4962ac609c8711a17d4323e42a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Oct 6 12:13:58 2009 +1000
- * configure.ac
- * xfixesproto.h
- * /xfixeswire.h
- Xfixes Version 4.0: XFixesHideCursor, XFixesShowCursor
+ fixesproto 4.1.1
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
+commit d76dd3834a9443ed2237fc26d6eff1cc429606b5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Oct 6 12:16:30 2009 +1000
- * configure.ac:
- Update package version number for final X11R7 release candidate.
+ Remove RCS tags
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 9fe9e1abb2ff3c839a6049fea39adf6d753c09c3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Oct 6 12:13:11 2009 +1000
+
+ Require macros 1.3 for XORG_DEFAULT_OPTIONS
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 39d4e91171de13d4b7079d4609e7930e32948d99
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Oct 5 19:21:42 2009 -0700
+
+ Add README with pointers to mailing lists, bugzilla, & git
+
+ Also correct INSTALL to list the right extension name
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 50921252322e05fea4f0f85c8ae8735b6df11860
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Jul 31 08:53:51 2009 +1000
+
+ Document behaviour of CursorNotifies with XI2 servers.
+
+ CursorNotifies are only sent for the ClientPointer to avoid confusion in the
+ client.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit beebe5339ee97b36c3d5b2a5c2b2f140d03f2003
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Jul 31 08:21:14 2009 +1000
+
+ Hide/ShowCursor works on all master pointers in XI2.
+
+ Servers supporting XI2 will hide all cursors when a client requests
+ HideCursor. This is arguably closest to the original intent of the request -
+ to not display a cursor above the given window.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 9a3f2e436481face8e79c80bffdfb3e00b48eeab
+Author: Adam Jackson <ajax@redhat.com>
+Date: Thu Jul 23 08:44:54 2009 -0400
+
+ fixesproto 4.1
+
+commit c7c9beab9a41d835008e1070c0ed8470293fe6ba
+Author: Julien Cristau <jcristau@debian.org>
+Date: Thu Jul 16 11:20:09 2009 +0100
+
+ fixesproto: adjust to split xext headers
+
+ Protocol constants for shape were moved to shapeconst.h.
+
+ Acked-By: Adam Jackson <ajax@redhat.com>
+
+commit a0aeb48945773d26f9a033a672eaf6f7917d0b83
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date: Tue Jan 27 20:08:44 2009 -0200
+
+ Janitor: Correct make distcheck and dont distribute autogen.sh
+
+commit 196061a586ed13189b68dec80c86c536ffc37ed7
+Author: Keith Packard <keithp@keithp.com>
+Date: Mon Sep 22 12:44:13 2008 -0700
+
+ ChangeSaveSet with map=Unmap means 'unmap', not 'don't remap'
+
+ The semantics in the spec were conflicting, and the implementation did the
+ 'don't remap' version which was not useful. The server implementation has
+ been fixed, this change clarifies the specification to match that design.
+
+commit 6415267d65f3f31d66abf70d029ff32783931262
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Thu Dec 14 13:34:10 2006 -0800
+
+ Typo fixes in XFixes protocol spec
+
+commit 2e9a7b2004d943eaf1be1778c94790528c573cb1
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Thu Dec 14 13:32:20 2006 -0800
+
+ Update XFixes protocol spec to match XFixes 4.0
+
+ Add ExpandRegion, HideCursor & ShowCursor requests
+ Correct description of version numbering to match XFixes conventions
+
+commit 0afb1fdaa1ddad7c71dcf5318f3f022ccb3ebba2
+Author: Eric Anholt <eric@anholt.net>
+Date: Tue Jan 9 09:43:50 2007 -0800
+
+ Move fixes protocol description to the new canonical location/name.
+
+commit 82b7ea2d5e89c4f26e5499015a62ab0a4d201639
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri Jul 14 18:56:12 2006 -0700
+
+ renamed: .cvsignore -> .gitignore
+
+commit a8369fcb8631fa943876753bc38b081f7daca324
+Author: Deron <dj4236@chiru.it.sfbay.sun.com>
+Date: Fri Mar 31 03:33:01 2006 -0800
+
+ Merged with modular CVS (Version 4.0 definitions).
+
+commit 43de9d4e70b66eb6afb8d62ce1af6c100f5d7786
+Author: Keith Packard <keithp@evo.keithp.com>
+Date: Fri Feb 24 02:23:27 2006 +0100
+
+ Import changes from Xorg repository
+
+commit ce5d32236723e984c1e1a3d43d9d252c20092afe
+Author: Keith Packard <keithp@evo.keithp.com>
+Date: Fri Feb 24 02:19:49 2006 +0100
+
+ rename fixesext.pc.in to fixesproto.pc.in as per xorg
+
+commit 248dc20d2d95d9c9a64cf9c97608c407d09d576d
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Jan 3 05:16:32 2005 +0000
+
+ New autogen.sh from Thomas Fitzsimmons that works with srcdir != objdir.
+
+commit 146473ec041bf2b7f550ca622ef5cb824f019146
+Author: Keith Packard <keithp@keithp.com>
+Date: Mon Jul 26 17:17:33 2004 +0000
+
+ Add XFixesExpandRegion
+
+commit 8d389eb1ebdd0d81435268bbb0699ec299030743
+Author: Jim Gettys <jg@freedesktop.org>
+Date: Tue Feb 3 20:47:55 2004 +0000
+
+ Add AUTHORS.
+
+commit 1f062c689975e8d00e4a43da25c93538bec6324d
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Wed Jan 21 10:09:59 2004 +0000
+
+ wow, fixesext is really copping all the crap here
+
+commit 796c1d6b3f9b8efce0caffff8bb9d7743ec1eeeb
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Wed Jan 21 10:05:08 2004 +0000
+
+ Another pointless commit: remove that extra space.
+
+commit df551ca22d5deba241efe6eb9815e50453ba5081
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Wed Jan 21 09:54:42 2004 +0000
+
+ Test check-in; I just want to see how the script works.
+
+commit 3d6cd34420c0ca10b9ece245d74923074f2ca7a1
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Jan 17 03:58:52 2004 +0000
+
+ And bump the fixes extension to 2.0.1 as well; yay. Some minor changes over 2.0.
+
+commit b0afc5e6982ee6d3c525eb965e3c27aa729c591e
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Thu Jan 15 03:39:34 2004 +0000
+
+ Tag release 2.0 for first freedesktop.org clientside lib release.
+
+commit f92db7128c857b3925846a9c8519e9554a1c67e2
+Author: Keith Packard <keithp@keithp.com>
+Date: Sat Nov 22 00:44:32 2003 +0000
+
+ Eliminate offset arguments in combining operators, create separate CopyRegion and TranslateRegion requests.
+
+commit 804a9fda12f70e66feac5e45bc8293a7e436689b
+Author: Keith Packard <keithp@keithp.com>
+Date: Mon Nov 3 01:47:23 2003 +0000
+
+ Merge xfixes_2_branch back to head
+
+commit 0c9e4c7af3d366b99c98ba199bae92cf5873b388
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Oct 9 01:48:22 2003 +0000
+
+ Autofoo
+
+commit a7b519bf17ea3a421029a9eceed5392786fb5cc9
+Author: Keith Packard <keithp@keithp.com>
+Date: Wed Jan 15 02:54:56 2003 +0000
+
+ *** empty log message ***
+
+commit 9b26a30bca325759d0e4f92684c81a98404b51da
+Author: Keith Packard <keithp@keithp.com>
+Date: Sun Jan 12 02:44:25 2003 +0000
+
+ Finish removing XFIXES
+
+commit 698d42ea5e9a609fff1b566e0d6160b694d78700
+Author: Keith Packard <keithp@keithp.com>
+Date: Sat Nov 30 20:58:31 2002 +0000
+
+ Add XFIXES protocol document
+
+commit e01f7b2ac063d275c6d01a0e6fe58da6733fb880
+Author: Keith Packard <keithp@keithp.com>
+Date: Sat Nov 30 06:21:43 2002 +0000
+
+ Add XFIXES extension
diff --git a/proto/fixesproto/INSTALL b/proto/fixesproto/INSTALL
new file mode 100644
index 000000000..3b1329a51
--- /dev/null
+++ b/proto/fixesproto/INSTALL
@@ -0,0 +1,8 @@
+xfixesproto is built with the traditional configure script:
+
+ $ ./configure --prefix=/usr
+
+This should generate valid Makefiles, then:
+
+ $ make
+ $ make install
diff --git a/proto/fixesproto/Makefile.am b/proto/fixesproto/Makefile.am
index 539cd3377..2991f9549 100644
--- a/proto/fixesproto/Makefile.am
+++ b/proto/fixesproto/Makefile.am
@@ -1,9 +1,43 @@
+#
+# Copyright © 2003 Keith Packard, Noah Levitt
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Keith Packard makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
fixesdir = $(includedir)/X11/extensions
fixes_HEADERS = \
xfixesproto.h \
xfixeswire.h
+fixesdocdir = $(datadir)/doc/$(PACKAGE)
+fixesdoc_DATA = fixesproto.txt
+
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = fixesproto.pc
-EXTRA_DIST = autogen.sh fixesproto.pc.in
+EXTRA_DIST = fixesproto.pc.in $(fixesdoc_DATA)
+
+EXTRA_DIST += ChangeLog
+MAINTAINERCLEANFILES = ChangeLog
+
+.PHONY: ChangeLog
+
+ChangeLog:
+ $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog
diff --git a/proto/fixesproto/README b/proto/fixesproto/README
new file mode 100644
index 000000000..1f0a27df7
--- /dev/null
+++ b/proto/fixesproto/README
@@ -0,0 +1,26 @@
+This package contains header files and documentation for the XFIXES
+extension. Library and server implementations are separate.
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+Please submit bug reports to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/proto/fixesproto
+
+ http://cgit.freedesktop.org/xorg/proto/fixesproto
+
+For patch submission instructions, see:
+
+ http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
+
diff --git a/proto/fixesproto/autogen.sh b/proto/fixesproto/autogen.sh
deleted file mode 100644
index 904cd6746..000000000
--- a/proto/fixesproto/autogen.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/sh
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd $srcdir
-
-autoreconf -v --install || exit 1
-cd $ORIGDIR || exit $?
-
-$srcdir/configure --enable-maintainer-mode "$@"
diff --git a/proto/fixesproto/configure.ac b/proto/fixesproto/configure.ac
index 21d81d9bb..d468ebb46 100644
--- a/proto/fixesproto/configure.ac
+++ b/proto/fixesproto/configure.ac
@@ -1,8 +1,36 @@
+dnl
+dnl Copyright © 2003 Keith Packard, Noah Levitt
+dnl
+dnl Permission to use, copy, modify, distribute, and sell this software and its
+dnl documentation for any purpose is hereby granted without fee, provided that
+dnl the above copyright notice appear in all copies and that both that
+dnl copyright notice and this permission notice appear in supporting
+dnl documentation, and that the name of Keith Packard not be used in
+dnl advertising or publicity pertaining to distribution of the software without
+dnl specific, written prior permission. Keith Packard makes no
+dnl representations about the suitability of this software for any purpose. It
+dnl is provided "as is" without express or implied warranty.
+dnl
+dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+dnl PERFORMANCE OF THIS SOFTWARE.
+dnl
+dnl Process this file with autoconf to create configure.
+
AC_PREREQ([2.57])
-AC_INIT([FixesProto], [4.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([FixesProto], [4.1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
-XORG_RELEASE_VERSION
+# Require xorg-macros: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+XORG_DEFAULT_OPTIONS
AC_OUTPUT([Makefile
fixesproto.pc])
+
diff --git a/proto/fixesproto/fixesproto.pc.in b/proto/fixesproto/fixesproto.pc.in
index 055dcbc64..fabce8608 100644
--- a/proto/fixesproto/fixesproto.pc.in
+++ b/proto/fixesproto/fixesproto.pc.in
@@ -2,8 +2,9 @@ prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
-
+
Name: FixesProto
-Description: Fixes extension headers
+Description: X Fixes extension headers
Version: @PACKAGE_VERSION@
Cflags: -I${includedir}
+Requires: xextproto >= 7.0.99.1
diff --git a/proto/fixesproto/fixesproto.txt b/proto/fixesproto/fixesproto.txt
new file mode 100644
index 000000000..5ef815385
--- /dev/null
+++ b/proto/fixesproto/fixesproto.txt
@@ -0,0 +1,577 @@
+ The XFIXES Extension
+ Version 4.0
+ Document Revision 2
+ 2006-12-14
+ Keith Packard
+ keithp@keithp.com
+
+1. Introduction
+
+X applications have often needed to work around various shortcomings in the
+core X window system. This extension is designed to provide the minimal
+server-side support necessary to eliminate problems caused by these
+workarounds.
+
+2. Acknowledgements
+
+This extension is a direct result of requests made by application
+developers, in particular,
+
+ + Owen Taylor for describing the issues raised with the XEMBED
+ mechanisms and SaveSet processing and his initial extension
+ to handle this issue.
+
+ + Bill Haneman for the design for cursor image tracking.
+
+ + Havoc Pennington
+
+ + Fredrik Höglund for cursor names
+
+ + Deron Johnson for cursor visibility
+
+3. Basic Premise
+
+Requests in this extension may seem to wander all over the map of X server
+capabilities, but they are tied by a simple rule -- resolving issues raised
+by application interaction with core protocol mechanisms that cannot be
+adequately worked around on the client side of the wire.
+
+4. Extension initialization
+
+The client must negotiate the version of the extension before executing
+extension requests. Behavior of the server is undefined otherwise.
+
+QueryVersion
+
+ client-major-version: CARD32
+ client-minor-version: CARD32
+
+ ->
+
+ major-version: CARD32
+ minor-version: CARD32
+
+ The client sends the highest supported version to the server and
+ the server sends the highest version it supports, but no higher than
+ the requested version. Major versions changes can introduce
+ new requests, minor version changes introduce only adjustments to
+ existing requests or backward compatible changes. It is
+ 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
+disparate documents and views within a single framework. From the X
+protocol perspective, this appears similar to nested window managers; the
+embedding application "manages" the embedded windows much as a window
+manager does for top-level windows. To protect the embedded application
+from embedding application failure, it is reasonable to use the core SaveSet
+mechanism so that embedding application failure causes embedded windows to
+be preserved instead of destroyed.
+
+The core save set mechanism defines the target for each save set member
+window as the nearest enclosing window not owned by the terminating client.
+For embedding applications, this nearest window is usually the window
+manager frame. The problem here is that the window manager will not
+generally expect to receive and correctly manage new windows appearing within
+that window by the save set mechanism, and will instead destroy the frame
+window in response to the client window destruction. This causes the
+embedded window to be destroyed.
+
+An easy fix for this problem is to change the target of the save set member
+to a window which won't be affected by the underlying window destruction.
+XFIXES chooses the root window as the target.
+
+Having embedded windows suddenly appear at the top level can confuse users,
+so XFIXES also lets the client select whether the window should end up
+unmapped after the save set processing instead of unconditionally making
+them be mapped.
+
+5.1 Requests
+
+ChangeSaveSet
+
+ 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.
+
+6. Selection Tracking
+
+Applications wishing to monitor the contents of current selections must
+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
+ window: Window
+ owner: Window
+ selection: Atom
+ timestamp: Timestamp
+ selection-timestamp: Timestamp
+
+6.2 Requests
+
+SelectSelectionInput
+
+ 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.
+
+7. Cursor Image Monitoring
+
+Mirroring the screen contents is easily done with the core protocol or VNC
+addons, except for the current cursor image. There is no way using the core
+protocol to discover which cursor image is currently displayed. The
+cursor image often contains significant semantic content about the user
+interface. XFIXES provides a simple mechanism to discover when the cursor
+image changes and to fetch the current cursor image.
+
+As the current cursor may or may not have any XID associated with it, there
+is no stable name available. Instead, XFIXES returns only the image of the
+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
+
+ 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.
+
+ 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).
+
+GetCursorImage
+
+ ->
+
+ 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.
+
+ 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. 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.
+
+CopyRegion
+ source: Region
+ destination: Region
+
+ This replaces the contents of destination with the contents of
+ source.
+
+UnionRegion
+IntersectRegion
+SubtractRegion
+
+ source1: Region
+ source2: Region
+ destination: Region
+
+ Combines source1 and source2, placing the result in destination.
+ Destination may be the same as either source1 or source2.
+
+ Errors: Region, Value
+
+InvertRegion
+
+ source: Region
+ bounds: RECTANGLE
+ destination: Region
+
+ The source region is subtracted from the region specified by
+ bounds. The result is placed in destination, replacing its contents.
+
+ Errors: Region
+
+TranslateRegion
+
+ region: Region
+ dx, dy: INT16
+
+ The region is translated by dx, dy in place.
+
+ 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 clip origin. Output will be clipped 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.
+
+************* XFIXES VERSION 3 OR BETTER ***********
+
+10. Region Expansion
+
+This update provides another operation on the region objects defined in
+Section 8 of this document.
+
+10.1 Requests
+
+ExpandRegion
+ source: REGION
+ destination: REGION
+ left, right, top, bottom: CARD16
+
+ Creates destination region containing the area specified by
+ expanding each rectangle in the source region by the specified
+ number of pixels to the left, right, top and bottom.
+
+************* XFIXES VERSION 4 OR BETTER ***********
+
+11. Cursor Visibility
+
+Composite managers may want to render the cursor themselves instead of
+relying on the X server sprite drawing, this provides a way for them to
+do so without getting a double cursor image.
+
+11.1 Requests
+
+HideCursor
+
+ window: WINDOW
+
+ 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.
+
+ 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.
+
+ Servers supporting the X Input Extension Version 2.0 or higher hide
+ all visible cursors in response to a HideCursor request. If a master
+ pointer is created while the cursors are hidden, this master pointer's
+ cursor will be hidden as well.
+
+ShowCursor
+
+ 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.
+
+ If the client has made no outstanding HideCursor requests
+ a BadMatch error is generated.
+
+ Servers supporting the X Input Extension Version 2.0 or higher show
+ all visible cursors in response to a ShowCursor request.
+
+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
+support version 1 of the extension protocol if requested by a client.
+
+Additions to the protocol will always by marked by minor version number
+changes so that applications will be able to detect what requests are
+supported.
diff --git a/proto/fixesproto/xfixesproto.h b/proto/fixesproto/xfixesproto.h
index d3899810a..1e9a98306 100644
--- a/proto/fixesproto/xfixesproto.h
+++ b/proto/fixesproto/xfixesproto.h
@@ -1,7 +1,5 @@
/*
- * $XFree86: xc/include/extensions/xfixesproto.h,v 1.1 2002/11/30 06:21:43 keithp Exp $
- *
- * Copyright © 2006 Sun Microsystems
+ * Copyright © 2006 Sun Microsystems
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -21,7 +19,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -47,9 +45,7 @@
#include <X11/Xmd.h>
#include <X11/extensions/xfixeswire.h>
-#define _SHAPE_SERVER_
-#include <X11/extensions/shape.h>
-#undef _SHAPE_SERVER_
+#include <X11/extensions/shapeconst.h>
#define Window CARD32
#define Drawable CARD32
diff --git a/proto/fixesproto/xfixeswire.h b/proto/fixesproto/xfixeswire.h
index e9bb5f5d0..72e84a7ff 100644
--- a/proto/fixesproto/xfixeswire.h
+++ b/proto/fixesproto/xfixeswire.h
@@ -1,7 +1,5 @@
/*
- * $XFree86: xc/include/extensions/xfixeswire.h,v 1.1 2002/11/30 06:21:43 keithp Exp $
- *
- * Copyright © 2006 Sun Microsystems
+ * Copyright © 2006 Sun Microsystems
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -21,7 +19,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that