Update to fixesproto 4.1.1.
This commit is contained in:
parent
0aeea70505
commit
3bede83286
1
proto/fixesproto/AUTHORS
Normal file
1
proto/fixesproto/AUTHORS
Normal file
@ -0,0 +1 @@
|
||||
Keith Packard, HP
|
@ -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
|
||||
|
@ -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
8
proto/fixesproto/INSTALL
Normal 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
|
@ -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
26
proto/fixesproto/README
Normal 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
|
||||
|
@ -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 "$@"
|
@ -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])
|
||||
|
||||
|
@ -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
|
||||
|
577
proto/fixesproto/fixesproto.txt
Normal file
577
proto/fixesproto/fixesproto.txt
Normal 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.
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user