diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2010-05-10 20:00:49 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2010-05-10 20:00:49 +0000 |
commit | 67769cf90ea1656e8087528aeecaa3e6554df477 (patch) | |
tree | b40acef5c4b41cb2db2ccc01bfa3426ca5267af0 /proto | |
parent | 30c801bed16485a15fd328207c4b95bf533e42b2 (diff) |
Update to fixesproto 4.1.1.
Diffstat (limited to 'proto')
-rw-r--r-- | proto/fixesproto/AUTHORS | 1 | ||||
-rw-r--r-- | proto/fixesproto/COPYING | 2 | ||||
-rw-r--r-- | proto/fixesproto/ChangeLog | 228 | ||||
-rw-r--r-- | proto/fixesproto/INSTALL | 8 | ||||
-rw-r--r-- | proto/fixesproto/Makefile.am | 36 | ||||
-rw-r--r-- | proto/fixesproto/README | 26 | ||||
-rw-r--r-- | proto/fixesproto/autogen.sh | 12 | ||||
-rw-r--r-- | proto/fixesproto/configure.ac | 32 | ||||
-rw-r--r-- | proto/fixesproto/fixesproto.pc.in | 5 | ||||
-rw-r--r-- | proto/fixesproto/fixesproto.txt | 577 | ||||
-rw-r--r-- | proto/fixesproto/xfixesproto.h | 10 | ||||
-rw-r--r-- | proto/fixesproto/xfixeswire.h | 6 |
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 |