Update to fixesproto 4.1.1.

This commit is contained in:
matthieu 2010-05-10 20:00:48 +00:00
parent 0aeea70505
commit 3bede83286
12 changed files with 907 additions and 40 deletions

1
proto/fixesproto/AUTHORS Normal file
View File

@ -0,0 +1 @@
Keith Packard, HP

View File

@ -1,5 +1,3 @@
$Id: COPYING,v 1.1.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

View File

@ -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

8
proto/fixesproto/INSTALL Normal file
View File

@ -0,0 +1,8 @@
xfixesproto is built with the traditional configure script:
$ ./configure --prefix=/usr
This should generate valid Makefiles, then:
$ make
$ make install

View File

@ -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

26
proto/fixesproto/README Normal file
View File

@ -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

View File

@ -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 "$@"

View File

@ -1,8 +1,36 @@
AC_PREREQ([2.57])
AC_INIT([FixesProto], [4.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
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.
XORG_RELEASE_VERSION
AC_PREREQ([2.57])
AC_INIT([FixesProto], [4.1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
# 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])

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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