Tizen 2.0 Release tizen_2.0 accepted/tizen_2.0/20130215.202959 submit/tizen_2.0/20130215.191850
authorHyungKyu Song <hk76.song@samsung.com>
Fri, 15 Feb 2013 15:19:51 +0000 (00:19 +0900)
committerHyungKyu Song <hk76.song@samsung.com>
Fri, 15 Feb 2013 15:19:51 +0000 (00:19 +0900)
14 files changed:
AUTHORS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0755]
NEWS [new file with mode: 0644]
README [new file with mode: 0755]
autogen.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
fixesproto.pc.in [new file with mode: 0644]
fixesproto.txt [new file with mode: 0644]
packaging/xorg-x11-proto-fixes.spec [new file with mode: 0644]
xfixesproto.h [new file with mode: 0644]
xfixeswire.h [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..8e18f9b
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Keith Packard, HP
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..c8114fe
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,42 @@
+Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+Copyright 2010 Red Hat, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright © 2001,2003 Keith Packard
+
+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.
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..e148637
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,360 @@
+commit b8a682cc30499a751091c84efabb3012e02f47c5
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Feb 28 09:53:30 2011 -0500
+
+    fixesproto 5.0
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 9760b4bdd1f9fdd6a33b9f876c4a835ed969aa84
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Nov 15 17:09:31 2010 -0500
+
+    fixesproto v5: Pointer barriers
+    
+    v3: Review fixes:
+    - INT16 not CARD16 for coordinates
+    - BadDevice not BadMatch
+    
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 29324d36b3aa6697268c9b51522afcafc2244361
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Oct 29 21:01:26 2010 -0700
+
+    fixesproto 4.1.2
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit d3dc092d123139bdb0db40fde42fc9a9f4ee6a9c
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Oct 29 20:59:41 2010 -0700
+
+    Sun's copyrights now belong to Oracle
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 66c8619be99d10de5969371ff6ccf08088bffdff
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Mar 28 19:00:30 2010 -0400
+
+    config: remove the pkgconfig pc.in file from EXTRA_DIST
+    
+    Automake always includes it in the tarball.
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit f7cd767d6f1d1f42da3c4e50ea414fe9716ac240
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Fri Jan 15 13:29:22 2010 -0800
+
+    Update Sun license notices to current X.Org standard form
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit ef0cad8cf54d1a672983ffac213cdca99fa9151e
+Author: Rémi Cardona <remi@gentoo.org>
+Date:   Thu Dec 17 08:35:10 2009 +0100
+
+    Use $(docdir) for fixesproto.txt install path
+    
+    Signed-off-by: Rémi Cardona <remi@gentoo.org>
+    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+    Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
+    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
+
+commit 8b518027c4243101a7da00b3a9419d63ece1c782
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 22 19:24:48 2009 -0500
+
+    Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+    
+    Now that the INSTALL file is generated.
+    Allows running make maintainer-clean.
+
+commit 36ed341de07d5c4df48116c3fcdbb6b9a432e5fe
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Mon Nov 16 16:10:15 2009 -0500
+
+    INSTALL file is missing or incorrect #24206
+    
+    The file is copied from util-macros.
+    The copy in git is removed.
+
+commit 8c866c15f1898105d7ee09ad3d8ed38213e76338
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Mon Nov 16 11:10:10 2009 -0500
+
+    README: file created or updated #24206
+    
+    Contains a set of URLs to freedesktop.org.
+
+commit 7f1bfe8c784db325ae532f54823ef07767e0a5ad
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 20:28:56 2009 -0500
+
+    NEWS: remove empty file #24206
+
+commit e7f981e0994f748faada122f8592359e8cb42c85
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 19:45:26 2009 -0500
+
+    Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+    
+    ChangeLog filename is known to Automake and requires no further
+    coding in the makefile.
+
+commit 2beee4825c0f1605988808c3bf9cd1347f6e3c02
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:31:28 2009 -0500
+
+    Makefile.am: INSTALL file is missing or incorrect #24206
+    
+    The standard GNU file on building/installing  tarball is copied
+    using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
+    Add INSTALL target
+
+commit a76d9bcc9d07aa64cfcb31624702efb444ae5109
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:11:36 2009 -0500
+
+    configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
+    
+    This macro aggregate a number of existing macros that sets commmon
+    X.Org components configuration options. It shields the configuration file from
+    future changes.
+
+commit 3907b71be026b126565e3859239032c6f437185d
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sat Nov 14 18:26:46 2009 -0500
+
+    .gitignore: use common defaults with custom section # 24239
+    
+    Using common defaults will reduce errors and maintenance.
+    Only the very small or inexistent custom section need periodic maintenance
+    when the structure of the component changes. Do not edit defaults.
+
+commit 88cd481b5349fe4962ac609c8711a17d4323e42a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 6 12:13:58 2009 +1000
+
+    fixesproto 4.1.1
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit d76dd3834a9443ed2237fc26d6eff1cc429606b5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Oct 6 12:16:30 2009 +1000
+
+    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/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Makefile.am b/Makefile.am
new file mode 100755 (executable)
index 0000000..f1716b0
--- /dev/null
@@ -0,0 +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
+
+dist_doc_DATA = fixesproto.txt
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = fixesproto.pc
+
+
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+       $(INSTALL_CMD)
+
+ChangeLog:
+       $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog INSTALL
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/README b/README
new file mode 100755 (executable)
index 0000000..99604e4
--- /dev/null
+++ b/README
@@ -0,0 +1,31 @@
+                               X Fixes Extension
+
+The extension makes changes to many areas of the protocol to resolve
+issues raised by application interaction with core protocol mechanisms
+that cannot be adequately worked around on the client side of the wire.
+
+Extension name: XFIXES
+
+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/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..904cd67
--- /dev/null
@@ -0,0 +1,12 @@
+#! /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/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..f85b802
--- /dev/null
@@ -0,0 +1,38 @@
+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.60])
+AC_INIT([FixesProto], [5.0],
+        [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],
+          [m4_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/fixesproto.pc.in b/fixesproto.pc.in
new file mode 100644 (file)
index 0000000..fabce86
--- /dev/null
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: FixesProto
+Description: X Fixes extension headers
+Version: @PACKAGE_VERSION@
+Cflags: -I${includedir}
+Requires: xextproto >= 7.0.99.1
diff --git a/fixesproto.txt b/fixesproto.txt
new file mode 100644 (file)
index 0000000..5903ac9
--- /dev/null
@@ -0,0 +1,661 @@
+                        The XFIXES Extension
+                           Version 5.0
+                        Document Revision 1
+                            2010-11-15
+                           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, and for pointer barriers
+
+ +     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.
+
+************* XFIXES VERSION 5 OR BETTER ***********
+
+12. Pointer Barriers
+
+Compositing managers and desktop environments may have UI elements in
+particular screen locations such that for a single-headed display they
+correspond to easy targets according to Fitt's Law, for example, the top
+left corner.  For a multi-headed environment these corners should still be
+semi-impermeable.  Pointer barriers allow the application to define
+additional constraint on cursor motion so that these areas behave as
+expected even in the face of multiple displays.
+
+Absolute positioning devices like touchscreens do not obey pointer barriers.
+There's no advantage to target acquisition to do so, since on a touchscreen
+all points are in some sense equally large, whereas for a relative
+positioning device the edges and corners are infinitely large.
+
+WarpPointer and similar requests do not obey pointer barriers, for
+essentially the same reason.
+
+12.1 Types
+
+       BARRIER:        XID
+
+       BarrierDirections
+
+               BarrierPositiveX:           1 << 0
+               BarrierPositiveY:           1 << 1
+               BarrierNegativeX:           1 << 2
+               BarrierNegativeY:           1 << 3
+
+12.2 Errors
+
+       Barrier
+
+12.3 Requests
+
+CreatePointerBarrier
+
+               barrier:                    BARRIER
+               drawable:                   DRAWABLE
+               x1, y2, x2, y2:             INT16
+               directions:                 CARD32
+               devices:                    LISTofDEVICEID
+
+       Creates a pointer barrier along the line specified by the given
+       coordinates on the screen associated with the given drawable.  The
+       barrier has no spatial extent; it is simply a line along the left
+       or top edge of the specified pixels.  Barrier coordinates are in
+       screen space.
+
+       The coordinates must be axis aligned, either x1 == x2, or
+       y1 == y2, but not both.  The varying coordinates may be specified
+       in any order.  For x1 == x2, either y1 > y2 or y1 < y2 is valid.
+       If the coordinates are not valid BadValue is generated.
+
+       Motion is allowed through the barrier in the directions specified:
+       setting the BarrierPositiveX bit allows travel through the barrier
+       in the positive X direction, etc.  Nonsensical values (forbidding Y
+       axis travel through a vertical barrier, for example) and excess set
+       bits are ignored.
+
+       If the server supports the X Input Extension version 2 or higher,
+       the devices element names a set of master device to apply the
+       barrier to.  If XIAllDevices or XIAllMasterDevices are given, the
+       barrier applies to all master devices.  If a slave device is named,
+       BadDevice is generated; this does not apply to slave devices named
+       implicitly by XIAllDevices.  Naming a device multiple times is
+       legal, and is treated as though it were named only once.  If a
+       device is removed, the barrier continues to apply to the remaining
+       devices, but will not apply to any future device with the same ID
+       as the removed device.  Nothing special happens when all matching
+       devices are removed; barriers must be explicitly destroyed.
+
+       Errors: IDChoice, Window, Value, Device
+
+DestroyPointerBarrier
+
+               barrier:                    BARRIER
+
+       Destroys the named barrier.
+
+       Errors: Barrier 
+
+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/packaging/xorg-x11-proto-fixes.spec b/packaging/xorg-x11-proto-fixes.spec
new file mode 100644 (file)
index 0000000..31d3ced
--- /dev/null
@@ -0,0 +1,48 @@
+Name:     xorg-x11-proto-fixes
+Summary:  X.Org X11 Protocol fixesproto
+Version:  5.0
+Release:  2
+Group:    Development/System
+License:  MIT
+URL:      http://www.x.org
+Source0:  %{name}-%{version}.tar.gz
+Provides: fixesproto
+
+
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(xorg-macros)
+
+Requires: xextproto
+
+# some file to be intalled can be ignored when rpm generates packages
+%define _unpackaged_files_terminate_build 0
+
+%description
+Description: %{summary}
+
+%prep
+%setup -q
+
+%build
+
+./autogen.sh
+%reconfigure --disable-static \
+             --libdir=%{_datadir} \
+             --without-xmlto
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%remove_docs
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_includedir}/X11/extensions/*.h
+%{_datadir}/pkgconfig/*.pc
diff --git a/xfixesproto.h b/xfixesproto.h
new file mode 100644 (file)
index 0000000..fcf409a
--- /dev/null
@@ -0,0 +1,551 @@
+/*
+ * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2010 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+/*
+ * 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
+ * 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.
+ */
+
+#ifndef _XFIXESPROTO_H_
+#define _XFIXESPROTO_H_
+
+#include <X11/Xmd.h>
+#include <X11/extensions/xfixeswire.h>
+#include <X11/extensions/shapeconst.h>
+
+#define Window CARD32
+#define Drawable CARD32
+#define Font CARD32
+#define Pixmap CARD32
+#define Cursor CARD32
+#define Colormap CARD32
+#define GContext CARD32
+#define Atom CARD32
+#define VisualID CARD32
+#define Time CARD32
+#define KeyCode CARD8
+#define KeySym CARD32
+#define Picture CARD32
+
+/*************** Version 1 ******************/
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+} xXFixesReq;
+
+/* 
+ * requests and replies
+ */
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+} xXFixesQueryVersionReq;
+
+#define sz_xXFixesQueryVersionReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xXFixesQueryVersionReply;
+
+#define sz_xXFixesQueryVersionReply    32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    BYTE    mode;          /* SetModeInsert/SetModeDelete*/
+    BYTE    target;        /* SaveSetNearest/SaveSetRoot*/
+    BYTE    map;           /* SaveSetMap/SaveSetUnmap */
+    BYTE    pad1;
+    Window  window;
+} xXFixesChangeSaveSetReq;
+
+#define sz_xXFixesChangeSaveSetReq     12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  window  B32;
+    Atom    selection B32;
+    CARD32  eventMask B32;
+} xXFixesSelectSelectionInputReq;
+
+#define sz_xXFixesSelectSelectionInputReq   16
+
+typedef struct {
+    CARD8   type;
+    CARD8   subtype;
+    CARD16  sequenceNumber B16;
+    Window  window B32;
+    Window  owner B32;
+    Atom    selection B32;
+    Time    timestamp B32;
+    Time    selectionTimestamp B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+} xXFixesSelectionNotifyEvent;
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  window B32;
+    CARD32  eventMask B32;
+} xXFixesSelectCursorInputReq;
+
+#define sz_xXFixesSelectCursorInputReq 12
+
+typedef struct {
+    CARD8   type;
+    CARD8   subtype;
+    CARD16  sequenceNumber B16;
+    Window  window B32;
+    CARD32  cursorSerial B32;
+    Time    timestamp;
+    Atom    name B32;      /* Version 2 */
+    CARD32  pad1 B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+} xXFixesCursorNotifyEvent;
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+} xXFixesGetCursorImageReq;
+
+#define sz_xXFixesGetCursorImageReq 4
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    INT16   x B16;
+    INT16   y B16;
+    CARD16  width B16;
+    CARD16  height B16;
+    CARD16  xhot B16;
+    CARD16  yhot B16;
+    CARD32  cursorSerial B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+} xXFixesGetCursorImageReply;
+
+#define sz_xXFixesGetCursorImageReply  32
+
+/*************** Version 2 ******************/
+
+#define Region CARD32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    /* LISTofRECTANGLE */
+} xXFixesCreateRegionReq;
+
+#define sz_xXFixesCreateRegionReq      8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Pixmap  bitmap B32;
+} xXFixesCreateRegionFromBitmapReq;
+
+#define sz_xXFixesCreateRegionFromBitmapReq    12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Window  window B32;
+    CARD8   kind;
+    CARD8   pad1;
+    CARD16  pad2 B16;
+} xXFixesCreateRegionFromWindowReq;
+
+#define sz_xXFixesCreateRegionFromWindowReq    16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    GContext gc B32;
+} xXFixesCreateRegionFromGCReq;
+
+#define sz_xXFixesCreateRegionFromGCReq        12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    Picture picture B32;
+} xXFixesCreateRegionFromPictureReq;
+
+#define sz_xXFixesCreateRegionFromPictureReq   12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+} xXFixesDestroyRegionReq;
+
+#define sz_xXFixesDestroyRegionReq     8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    /* LISTofRECTANGLE */
+} xXFixesSetRegionReq;
+
+#define sz_xXFixesSetRegionReq         8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    Region  destination B32;
+} xXFixesCopyRegionReq;
+
+#define sz_xXFixesCopyRegionReq                12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source1 B32;
+    Region  source2 B32;
+    Region  destination B32;
+} xXFixesCombineRegionReq,
+  xXFixesUnionRegionReq,
+  xXFixesIntersectRegionReq,
+  xXFixesSubtractRegionReq;
+
+#define sz_xXFixesCombineRegionReq     16
+#define sz_xXFixesUnionRegionReq       sz_xXFixesCombineRegionReq
+#define sz_xXFixesIntersectRegionReq   sz_xXFixesCombineRegionReq
+#define sz_xXFixesSubtractRegionReq    sz_xXFixesCombineRegionReq
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    INT16   x B16, y B16;
+    CARD16  width B16, height B16;
+    Region  destination B32;
+} xXFixesInvertRegionReq;
+
+#define sz_xXFixesInvertRegionReq      20
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+    INT16   dx B16, dy B16;
+} xXFixesTranslateRegionReq;
+
+#define sz_xXFixesTranslateRegionReq   12
+    
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    Region  destination B32;
+} xXFixesRegionExtentsReq;
+
+#define sz_xXFixesRegionExtentsReq     12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  region B32;
+} xXFixesFetchRegionReq;
+
+#define sz_xXFixesFetchRegionReq       8
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    INT16   x B16, y B16;
+    CARD16  width B16, height B16;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xXFixesFetchRegionReply;
+
+#define sz_xXFixesFetchRegionReply     32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    GContext   gc B32;
+    Region  region B32;
+    INT16   xOrigin B16, yOrigin B16;
+} xXFixesSetGCClipRegionReq;
+
+#define sz_xXFixesSetGCClipRegionReq   16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  dest;
+    BYTE    destKind;
+    CARD8   pad1;
+    CARD16  pad2 B16;
+    INT16   xOff B16, yOff B16;
+    Region  region;
+} xXFixesSetWindowShapeRegionReq;
+
+#define sz_xXFixesSetWindowShapeRegionReq      20
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Picture picture B32;
+    Region  region B32;
+    INT16   xOrigin B16, yOrigin B16;
+} xXFixesSetPictureClipRegionReq;
+
+#define sz_xXFixesSetPictureClipRegionReq   16
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  cursor B32;
+    CARD16  nbytes B16;
+    CARD16  pad B16;
+} xXFixesSetCursorNameReq;
+
+#define sz_xXFixesSetCursorNameReq         12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  cursor B32;
+} xXFixesGetCursorNameReq;
+
+#define sz_xXFixesGetCursorNameReq         8
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    Atom    atom B32;
+    CARD16  nbytes B16;
+    CARD16  pad2 B16;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+    CARD32  pad6 B32;
+} xXFixesGetCursorNameReply;
+
+#define sz_xXFixesGetCursorNameReply       32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+} xXFixesGetCursorImageAndNameReq;
+
+#define sz_xXFixesGetCursorImageAndNameReq  4
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    INT16   x B16;
+    INT16   y B16;
+    CARD16  width B16;
+    CARD16  height B16;
+    CARD16  xhot B16;
+    CARD16  yhot B16;
+    CARD32  cursorSerial B32;
+    Atom    cursorName B32;
+    CARD16  nbytes B16;
+    CARD16  pad B16;
+} xXFixesGetCursorImageAndNameReply;
+
+#define sz_xXFixesGetCursorImageAndNameReply   32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  source B32;
+    Cursor  destination B32;
+} xXFixesChangeCursorReq;
+
+#define sz_xXFixesChangeCursorReq      12
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Cursor  source B32;
+    CARD16  nbytes;
+    CARD16  pad;
+} xXFixesChangeCursorByNameReq;
+
+#define sz_xXFixesChangeCursorByNameReq        12
+
+/*************** Version 3 ******************/
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Region  source B32;
+    Region  destination B32;
+    CARD16  left B16;
+    CARD16  right B16;
+    CARD16  top B16;
+    CARD16  bottom B16;
+} xXFixesExpandRegionReq;
+
+#define sz_xXFixesExpandRegionReq      20
+
+/*************** Version 4.0 ******************/
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  window B32;
+} xXFixesHideCursorReq;
+
+#define sz_xXFixesHideCursorReq        sizeof(xXFixesHideCursorReq)
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Window  window B32;
+} xXFixesShowCursorReq;
+
+#define sz_xXFixesShowCursorReq        sizeof(xXFixesShowCursorReq)
+
+/*************** Version 5.0 ******************/
+
+#define Barrier CARD32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Barrier barrier B32;
+    Window  window B32;
+    INT16   x1 B16;
+    INT16   y1 B16;
+    INT16   x2 B16;
+    INT16   y2 B16;
+    CARD32  directions;
+    CARD16  pad B16;
+    CARD16  num_devices B16;
+    /* array of CARD16 devices */
+} xXFixesCreatePointerBarrierReq;
+
+#define sz_xXFixesCreatePointerBarrierReq 28
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   xfixesReqType;
+    CARD16  length B16;
+    Barrier barrier B32;
+} xXFixesDestroyPointerBarrierReq;
+
+#define sz_xXFixesDestroyPointerBarrierReq 8
+
+#undef Barrier
+#undef Region
+#undef Picture
+#undef Window
+#undef Drawable
+#undef Font
+#undef Pixmap
+#undef Cursor
+#undef Colormap
+#undef GContext
+#undef Atom
+#undef VisualID
+#undef Time
+#undef KeyCode
+#undef KeySym
+
+#endif /* _XFIXESPROTO_H_ */
diff --git a/xfixeswire.h b/xfixeswire.h
new file mode 100644 (file)
index 0000000..432349a
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2010 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+/*
+ * 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
+ * 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.
+ */
+
+
+#ifndef _XFIXESWIRE_H_
+#define _XFIXESWIRE_H_
+
+#define XFIXES_NAME    "XFIXES"
+#define XFIXES_MAJOR   5
+#define XFIXES_MINOR   0
+
+/*************** Version 1 ******************/
+#define X_XFixesQueryVersion               0
+#define X_XFixesChangeSaveSet              1
+#define X_XFixesSelectSelectionInput       2
+#define X_XFixesSelectCursorInput          3
+#define X_XFixesGetCursorImage             4
+/*************** Version 2 ******************/
+#define X_XFixesCreateRegion               5
+#define X_XFixesCreateRegionFromBitmap     6
+#define X_XFixesCreateRegionFromWindow     7
+#define X_XFixesCreateRegionFromGC         8
+#define X_XFixesCreateRegionFromPicture            9
+#define X_XFixesDestroyRegion              10
+#define X_XFixesSetRegion                  11
+#define X_XFixesCopyRegion                 12
+#define X_XFixesUnionRegion                13
+#define X_XFixesIntersectRegion                    14
+#define X_XFixesSubtractRegion             15
+#define X_XFixesInvertRegion               16
+#define X_XFixesTranslateRegion                    17
+#define X_XFixesRegionExtents              18
+#define X_XFixesFetchRegion                19
+#define X_XFixesSetGCClipRegion                    20
+#define X_XFixesSetWindowShapeRegion       21
+#define X_XFixesSetPictureClipRegion       22
+#define X_XFixesSetCursorName              23
+#define X_XFixesGetCursorName              24
+#define X_XFixesGetCursorImageAndName      25
+#define X_XFixesChangeCursor               26
+#define X_XFixesChangeCursorByName         27
+/*************** Version 3 ******************/
+#define X_XFixesExpandRegion               28
+/*************** Version 4 ******************/
+#define X_XFixesHideCursor                 29
+#define X_XFixesShowCursor                 30
+/*************** Version 5 ******************/
+#define X_XFixesCreatePointerBarrier       31
+#define X_XFixesDestroyPointerBarrier      32
+
+#define XFixesNumberRequests               (X_XFixesDestroyPointerBarrier+1)
+
+/* Selection events share one event number */
+#define XFixesSelectionNotify              0
+
+/* Within the selection, the 'subtype' field distinguishes */
+#define XFixesSetSelectionOwnerNotify      0
+#define XFixesSelectionWindowDestroyNotify  1
+#define XFixesSelectionClientCloseNotify    2
+
+#define XFixesSetSelectionOwnerNotifyMask      (1L << 0)
+#define XFixesSelectionWindowDestroyNotifyMask (1L << 1)
+#define XFixesSelectionClientCloseNotifyMask   (1L << 2)
+
+/* There's only one cursor event so far */
+#define XFixesCursorNotify                 1
+
+#define XFixesDisplayCursorNotify          0
+
+#define XFixesDisplayCursorNotifyMask      (1L << 0)
+
+#define XFixesNumberEvents                 (2)
+
+/* errors */
+#define BadRegion                          0
+#define BadBarrier                         1
+#define XFixesNumberErrors                 (BadBarrier+1)
+
+#define SaveSetNearest                     0
+#define SaveSetRoot                        1
+
+#define SaveSetMap                         0
+#define SaveSetUnmap                       1
+
+/*************** Version 2 ******************/
+
+#define WindowRegionBounding               0
+#define WindowRegionClip                   1
+
+/*************** Version 5 ******************/
+
+#define BarrierPositiveX                   (1L << 0)
+#define BarrierPositiveY                   (1L << 1)
+#define BarrierNegativeX                   (1L << 2)
+#define BarrierNegativeY                   (1L << 3)
+
+#endif /* _XFIXESWIRE_H_ */