Hello community,

here is the log from the commit of package xorg-x11-proto-devel for 
openSUSE:Factory checked in at 2013-03-08 11:02:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-proto-devel (Old)
 and      /work/SRC/openSUSE:Factory/.xorg-x11-proto-devel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xorg-x11-proto-devel", Maintainer is "[email protected]"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/xorg-x11-proto-devel/xorg-x11-proto-devel.changes    
    2012-10-12 08:16:41.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.xorg-x11-proto-devel.new/xorg-x11-proto-devel.changes
   2013-03-08 11:02:05.000000000 +0100
@@ -1,0 +2,14 @@
+Thu Mar  7 01:18:12 UTC 2013 - [email protected]
+
+- Update inputproto to version 2.3:
+  The feature added in this revision is pointer barrier events and releases.
+  Pointer barriers themselves are an XFixes 5 feature, XI 2.3 adds two
+  disctinct features to barriers:
+  + the ability for clients to get notified if pointer movement is restricted
+    by a barrier
+  + the ability for clients to allow a pointer to move through a barrier after
+    it was constrained by the barrier 
+  For a more verbose explanation of these features please refer to:
+  http://who-t.blogspot.com.au/2012/12/whats-new-in-xi-23-pointer-barrier.html
+
+-------------------------------------------------------

Old:
----
  inputproto-2.2.tar.bz2

New:
----
  inputproto-2.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xorg-x11-proto-devel.spec ++++++
--- /var/tmp/diff_new_pack.WtZhu6/_old  2013-03-08 11:02:08.000000000 +0100
+++ /var/tmp/diff_new_pack.WtZhu6/_new  2013-03-08 11:02:08.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xorg-x11-proto-devel
 #
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -48,7 +48,7 @@
 Source6:        fontcacheproto-0.1.3.tar.bz2
 Source7:        fontsproto-2.1.2.tar.bz2
 Source8:        glproto-1.4.16.tar.bz2
-Source9:        inputproto-2.2.tar.bz2
+Source9:        inputproto-2.3.tar.bz2
 Source10:       kbproto-1.0.6.tar.bz2
 Source11:       printproto-1.0.5.tar.bz2
 Source12:       randrproto-1.4.0.tar.bz2

++++++ inputproto-2.2.tar.bz2 -> inputproto-2.3.tar.bz2 ++++++
++++ 12498 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/ChangeLog new/inputproto-2.3/ChangeLog
--- old/inputproto-2.2/ChangeLog        2012-03-02 04:08:15.000000000 +0100
+++ new/inputproto-2.3/ChangeLog        2013-03-07 01:47:50.000000000 +0100
@@ -1,3 +1,155 @@
+commit f33a329026c9f2eaa5fa436543e4feb0e54b685d
+Author: Peter Hutterer <[email protected]>
+Date:   Thu Mar 7 10:42:39 2013 +1000
+
+    inputproto 2.3
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit f8428123019e7357891bbfc0aef21dbb4d0db10f
+Author: Colin Walters <[email protected]>
+Date:   Wed Jan 4 17:37:06 2012 -0500
+
+    autogen.sh: Implement GNOME Build API
+    
+    http://people.gnome.org/~walters/docs/build-api.txt
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit 8cad031f9f583089dd33bae41dfa8a7e0d8a71f4
+Author: Adam Jackson <[email protected]>
+Date:   Tue Jan 15 14:01:10 2013 -0500
+
+    configure: Remove AM_MAINTAINER_MODE
+    
+    Signed-off-by: Adam Jackson <[email protected]>
+
+commit 4832c94775ee4a02cfaf53ba427d7cf677f70932
+Merge: 48e3209 e93e9d0
+Author: Peter Hutterer <[email protected]>
+Date:   Mon Dec 17 14:24:59 2012 +1000
+
+    Merge branch 'barriers'
+
+commit e93e9d004c11a59cab56139c0c04ea2b5c6a926b
+Author: Peter Hutterer <[email protected]>
+Date:   Mon Dec 17 14:18:07 2012 +1000
+
+    specs: removing a device results in a BarrierLeave event
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit bc009eb4dadf2138212291da05b514854923ae85
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Dec 7 14:41:03 2012 +1000
+
+    inputproto 2.2.99.1
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 5f9d3b8584d88f49fa7533c429e32199a06ed215
+Author: Jasper St. Pierre <[email protected]>
+Date:   Fri Dec 7 14:42:17 2012 +1000
+
+    Add support for pointer barrier events
+    
+    Signed-off-by: Jasper St. Pierre <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 0b88ca65bdaab4c60f945fe64c48982bc89e5d1f
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Dec 7 14:41:54 2012 +1000
+
+    Claim support for XI 2.3
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 48e32091c5a3220a464caad49fd7dd013c429eda
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Dec 7 12:55:24 2012 +1000
+
+    Fix typo in comment
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 377efaaa9828b4004741744ae172a193b5483a34
+Author: Daniel Martin <[email protected]>
+Date:   Wed Nov 7 12:41:49 2012 +0100
+
+    specs: XI2: Fix mods in XIPassive(Un)GrabDevice
+    
+    XIPassiveGrabDevice and XIPassiveUngrabDevice are using lists of
+    modifier masks. This one corrects these types.
+    
+    MODIFIERMASK was introduced, because a SETofMODIFIERMASK differs from a
+    SETofKEYMASK: AnyModifier=(1<<15) vs. GrabAnyModifier=(1U<<31).
+    
+    Signed-off-by: Daniel Martin <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit eb38fd9af846afe39287d5cf281b0274f42e8558
+Author: Daniel Martin <[email protected]>
+Date:   Wed Nov 7 12:41:48 2012 +0100
+
+    specs: XI2: Rename AxisClass to ValuatorClass
+    
+    ValuatorClass is the XI2 term for AxisClass.
+    
+    Signed-off-by: Daniel Martin <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit b30e7221b8888b674e6889beeada9b5b9dfc2f34
+Author: Daniel Martin <[email protected]>
+Date:   Wed Nov 7 12:41:47 2012 +0100
+
+    specs: XI2: Fix typos
+    
+    Signed-off-by: Daniel Martin <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 743cb2cf1567cf685dfe5444621eb56447768c7c
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Nov 2 15:37:28 2012 +1000
+
+    XI2proto: spec formatting fix
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit a06905c8efc053e8ffcd0fc93736c0e45b715c38
+Author: Ran Benita <[email protected]>
+Date:   Sat Oct 27 14:56:49 2012 +0200
+
+    specs: XI2: add titles to requests/events and show them in TOC
+    
+    You often want to quickly jump to the specification of a specific
+    request/event, so add them to the table of contents to allow for that.
+    This also provides the reader with a quick glance at what the protocol
+    looks like.
+    
+    Signed-off-by: Ran Benita <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 74098071768a4b25670cf5582bc68433403deefe
+Author: Ran Benita <[email protected]>
+Date:   Sat Oct 27 14:56:48 2012 +0200
+
+    specs: XI2: make event/request name formatting consistent
+    
+    None of the other have ':' there.
+    
+    Signed-off-by: Ran Benita <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 3ed8aed32199edaa8621ccea571a04883e050cb5
+Author: Peter Hutterer <[email protected]>
+Date:   Thu Jun 14 08:56:55 2012 +1000
+
+    Fix two typos in spec/comments
+    
+    The ButtonClass provides the number of buttons, not the lentgh of the mask.
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
 commit e752e92dbdcf01b1cd46a3853f582ff765d19e90
 Author: Peter Hutterer <[email protected]>
 Date:   Fri Mar 2 12:58:18 2012 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/XI2.h new/inputproto-2.3/XI2.h
--- old/inputproto-2.2/XI2.h    2012-01-03 04:21:39.000000000 +0100
+++ new/inputproto-2.3/XI2.h    2012-12-17 05:24:59.000000000 +0100
@@ -30,7 +30,7 @@
    See commit libXi-1.4.2-21-ge8531dd */
 
 #define XI_2_Major                              2
-#define XI_2_Minor                              2
+#define XI_2_Minor                              3
 
 /* Property event flags */
 #define XIPropertyDeleted                       0
@@ -160,6 +160,11 @@
 #define XITouchPendingEnd                       (1 << 16)
 #define XITouchEmulatingPointer                 (1 << 17)
 
+/* Barrier event flags */
+#define XIBarrierPointerReleased                (1 << 0)
+#define XIBarrierDeviceIsGrabbed                (1 << 1)
+
+
 /* Touch modes */
 #define XIDirectTouch                           1
 #define XIDependentTouch                        2
@@ -199,7 +204,9 @@
 #define XI_RawTouchBegin                 22
 #define XI_RawTouchUpdate                23
 #define XI_RawTouchEnd                   24
-#define XI_LASTEVENT                     XI_RawTouchEnd
+#define XI_BarrierHit                    25 /* XI 2.3 */
+#define XI_BarrierLeave                  26
+#define XI_LASTEVENT                     XI_BarrierLeave
 /* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
  * as XI_LASTEVENT if the server is supposed to handle masks etc. for this
  * type of event. */
@@ -232,5 +239,7 @@
 #define XI_RawTouchBeginMask             (1 << XI_RawTouchBegin)
 #define XI_RawTouchEndMask               (1 << XI_RawTouchEnd)
 #define XI_RawTouchUpdateMask            (1 << XI_RawTouchUpdate)
+#define XI_BarrierHitMask                (1 << XI_BarrierHit)
+#define XI_BarrierLeaveMask              (1 << XI_BarrierLeave)
 
 #endif /* _XI2_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/XI2proto.h new/inputproto-2.3/XI2proto.h
--- old/inputproto-2.2/XI2proto.h       2012-02-08 09:59:23.000000000 +0100
+++ new/inputproto-2.3/XI2proto.h       2013-02-22 02:45:17.000000000 +0100
@@ -67,6 +67,7 @@
 #define Time    uint32_t
 #define Atom    uint32_t
 #define Cursor  uint32_t
+#define Barrier uint32_t
 
 /**
  * XI2 Request opcodes
@@ -92,9 +93,10 @@
 #define X_XIDeleteProperty              58
 #define X_XIGetProperty                 59
 #define X_XIGetSelectedEvents           60
+#define X_XIBarrierReleasePointer       61
 
 /** Number of XI requests */
-#define XI2REQUESTS (X_XIGetSelectedEvents - X_XIQueryPointer + 1)
+#define XI2REQUESTS (X_XIBarrierReleasePointer - X_XIQueryPointer + 1)
 /** Number of XI2 events */
 #define XI2EVENTS   (XI_LASTEVENT + 1)
 
@@ -154,7 +156,7 @@
     uint16_t    type;           /**< Always ButtonClass */
     uint16_t    length;         /**< Length in 4 byte units */
     uint16_t    sourceid;       /**< source device for this class */
-    uint16_t    num_buttons;    /**< Number of buttons provide */
+    uint16_t    num_buttons;    /**< Number of buttons provided */
 } xXIButtonInfo;
 
 /**
@@ -815,6 +817,22 @@
 } xXIGetPropertyReply;
 #define sz_xXIGetPropertyReply               32
 
+typedef struct {
+    uint16_t    deviceid;
+    uint16_t    pad;
+    Barrier     barrier;
+    uint32_t    eventid;
+} xXIBarrierReleasePointerInfo;
+
+typedef struct {
+    uint8_t     reqType;                /**< Input extension major opcode */
+    uint8_t     ReqType;                /**< Always X_XIBarrierReleasePointer 
*/
+    uint16_t    length;
+    uint32_t    num_barriers;
+    /* array of xXIBarrierReleasePointerInfo */
+} xXIBarrierReleasePointerReq;
+#define sz_xXIBarrierReleasePointerReq       8
+
 
/*************************************************************************************
  *                                                                             
      *
  *                                      EVENTS                                 
      *
@@ -1021,7 +1039,7 @@
     uint8_t     type;                   /**< Always GenericEvent */
     uint8_t     extension;              /**< XI extension offset */
     uint16_t    sequenceNumber;
-    uint32_t    length;                 /**< Length in 4 byte uints */
+    uint32_t    length;                 /**< Length in 4 byte units */
     uint16_t    evtype;                 /**< ::XI_PropertyEvent */
     uint16_t    deviceid;
     Time        time;
@@ -1035,10 +1053,39 @@
     uint32_t    pad3;
 } xXIPropertyEvent;
 
+typedef struct
+{
+    uint8_t     type;                   /**< Always GenericEvent */
+    uint8_t     extension;              /**< XI extension offset */
+    uint16_t    sequenceNumber;
+    uint32_t    length;                 /**< Length in 4 byte units */
+    uint16_t    evtype;                 /**< ::XI_BarrierHit or 
::XI_BarrierLeave */
+    uint16_t    deviceid;
+    Time        time;
+    uint32_t    eventid;
+    Window      root;
+    Window      event;
+    Barrier     barrier;
+/* └──────── 32 byte boundary ────────┘ */
+    uint32_t    dtime;
+    uint32_t    flags;                  /**< ::XIBarrierPointerReleased
+                                             ::XIBarrierDeviceIsGrabbed */
+    uint16_t    sourceid;
+    int16_t     pad;
+    FP1616      root_x;
+    FP1616      root_y;
+    FP3232      dx;
+    FP3232      dy;
+} xXIBarrierEvent;
+
+typedef xXIBarrierEvent xXIBarrierHitEvent;
+typedef xXIBarrierEvent xXIBarrierPointerReleasedEvent;
+typedef xXIBarrierEvent xXIBarrierLeaveEvent;
 
 #undef Window
 #undef Time
 #undef Atom
 #undef Cursor
+#undef Barrier
 
 #endif /* _XI2PROTO_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/configure.ac new/inputproto-2.3/configure.ac
--- old/inputproto-2.2/configure.ac     2012-03-02 03:57:06.000000000 +0100
+++ new/inputproto-2.3/configure.ac     2013-03-07 01:43:48.000000000 +0100
@@ -1,7 +1,6 @@
 AC_PREREQ([2.60])
-AC_INIT([InputProto], [2.2], 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([InputProto], [2.3], 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
 
 # Require xorg-macros: XORG_WITH_ASCIIDOC
 m4_ifndef([XORG_MACROS_VERSION],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/missing new/inputproto-2.3/missing
--- old/inputproto-2.2/missing  2008-04-16 06:02:08.000000000 +0200
+++ new/inputproto-2.3/missing  2013-01-24 05:50:20.000000000 +0100
@@ -1,10 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2006-05-10.23
+scriptversion=2012-01-06.18; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-#   Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -18,9 +17,7 @@
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -28,7 +25,7 @@
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
@@ -36,7 +33,7 @@
 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
-# In the cases where this matters, `missing' is being run in the
+# In the cases where this matters, 'missing' is being run in the
 # srcdir already.
 if test -f configure.ac; then
   configure_ac=configure.ac
@@ -67,7 +64,7 @@
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
 error status if there is no known handling for PROGRAM.
 
 Options:
@@ -76,18 +73,20 @@
   --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
+  aclocal      touch file 'aclocal.m4'
+  autoconf     touch file 'configure'
+  autoheader   touch file 'config.h.in'
   autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
+  automake     touch all 'Makefile.in' files
+  bison        create 'y.tab.[ch]', if possible, from existing .[ch]
+  flex         create 'lex.yy.c', if possible, from existing .c
   help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
+  lex          create 'lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <[email protected]>."
     exit $?
@@ -99,37 +98,35 @@
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: Unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
-# the program).
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
 case $1 in
-  lex|yacc)
+  lex*|yacc*)
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
        exit 1
     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
        # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # running '$TOOL --version' or '$TOOL --help' to check whether
        # $TOOL exists and not knowing $TOOL uses missing.
        exit 1
     fi
@@ -138,30 +135,30 @@
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case $1 in
+case $program in
   aclocal*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acinclude.m4' or '${configure_ac}'.  You might want
+         to install the Automake and Perl packages.  Grab them from
          any GNU archive site."
     touch aclocal.m4
     ;;
 
-  autoconf)
+  autoconf*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+WARNING: '$1' is $msg.  You should only need it if
+         you modified '${configure_ac}'.  You might want to install the
+         Autoconf and GNU m4 packages.  Grab them from any GNU
          archive site."
     touch configure
     ;;
 
-  autoheader)
+  autoheader*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acconfig.h' or '${configure_ac}'.  You might want
+         to install the Autoconf and GNU m4 packages.  Grab them
          from any GNU archive site."
     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' 
${configure_ac}`
     test -z "$files" && files="config.h"
@@ -178,21 +175,21 @@
 
   automake*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
+         You might want to install the Automake and Perl packages.
          Grab them from any GNU archive site."
     find . -type f -name Makefile.am -print |
           sed 's/\.am$/.in/' |
           while read f; do touch "$f"; done
     ;;
 
-  autom4te)
+  autom4te*)
     echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
+WARNING: '$1' is needed, but is $msg.
          You might have modified some files without having the
          proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
+         You can get '$1' as part of Autoconf from any GNU
          archive site."
 
     file=`echo "$*" | sed -n "$sed_output"`
@@ -210,15 +207,15 @@
     fi
     ;;
 
-  bison|yacc)
+  bison*|yacc*)
     echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
+WARNING: '$1' $msg.  You should only need it if
+         you modified a '.y' file.  You may need the Bison package
          in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
+         Bison from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -240,15 +237,15 @@
     fi
     ;;
 
-  lex|flex)
+  lex*|flex*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.l' file.  You may need the Flex package
          in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
+         Flex from any GNU archive site."
     rm -f lex.yy.c
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -263,12 +260,12 @@
     fi
     ;;
 
-  help2man)
+  help2man*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
+WARNING: '$1' is $msg.  You should only need it if
         you modified a dependency of a manual page.  You may need the
-        \`Help2man' package in order for those modifications to take
-        effect.  You can get \`Help2man' from any GNU archive site."
+        Help2man package in order for those modifications to take
+        effect.  You can get Help2man from any GNU archive site."
 
     file=`echo "$*" | sed -n "$sed_output"`
     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -277,18 +274,18 @@
     else
        test -z "$file" || exec >$file
        echo ".ab help2man is required to generate this page"
-       exit 1
+       exit $?
     fi
     ;;
 
-  makeinfo)
+  makeinfo*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.texi' or '.texinfo' file, or any other file
          indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
+         call might also be the consequence of using a buggy 'make' (AIX,
+         DU, IRIX).  You might want to install the Texinfo package or
+         the GNU make package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
     file=`echo "$*" | sed -n "$sed_output"`
     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -310,49 +307,14 @@
     touch $file
     ;;
 
-  tar)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-       case $firstarg in
-       *o*)
-           firstarg=`echo "$firstarg" | sed s/o//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-       case $firstarg in
-       *h*)
-           firstarg=`echo "$firstarg" | sed s/h//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
   *)
     echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
+WARNING: '$1' is needed, and is $msg.
          You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
+         proper tools for further handling them.  Check the 'README' file,
          it often tells you about the needed prerequisites for installing
          this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
+         some other package would contain this missing '$1' program."
     exit 1
     ;;
 esac
@@ -363,5 +325,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/inputproto-2.2/specs/XI2proto.txt new/inputproto-2.3/specs/XI2proto.txt
--- old/inputproto-2.2/specs/XI2proto.txt       2012-03-02 03:05:04.000000000 
+0100
+++ new/inputproto-2.3/specs/XI2proto.txt       2013-02-22 02:45:17.000000000 
+0100
@@ -1,5 +1,6 @@
 The X Input Extension 2.x
 =========================
+:toclevels: 3
 :toc:
 :numbered:
 
@@ -13,6 +14,7 @@
 History 
 -------
 
+- v2.3, December 2012: Pointer barrier events added
 - v2.2, March 2012: Multitouch support added
 - v2.1, December 2011: new raw event behaviour, smooth scrolling support
   added
@@ -31,7 +33,7 @@
   minimum length of 32 bytes.
 - explicit device hierarchy of master and slave devices. See Section
 <<hierarchy,The Master/Slave device hierarchy>>.
-- use of multiple independent master devices (Multi-Poiner X or MPX).
+- use of multiple independent master devices (Multi-Pointer X or MPX).
 - the ability for devices to change capabilities at runtime.
 - raw device events
 
@@ -56,6 +58,10 @@
 
 - Multitouch support added
 
+Changes in version 2.3
+----------------------
+
+- Pointer barrier events added
 
 //                            ❧❧❧❧❧❧❧❧❧❧❧
 
@@ -550,6 +556,54 @@
 Emulated pointer events will have the PointerEmulated flag set. A touch
 event that emulates pointer events has the TouchEmulatingPointer flag set.
 
+
+[[barrier-events]]
+Pointer barrier events
+^^^^^^^^^^^^^^^^^^^^^^
+If a master pointer moves against a pointer barrier blocking movement in
+that pointer's direction, the movement of the pointer is clamped to the x or
+y coordinate of the barrier, whichever applies. For a description of pointer
+barriers and barrier creation and destruction see the XFixes protocol
+specification v 5.0 or later.
+http://cgit.freedesktop.org/xorg/proto/fixesproto/plain/fixesproto.txt
+
+A pointer hitting a blocking barrier creates a new barrier event sequence,
+identified by a unique event ID. A new event ID is assigned when the pointer
+first hits a barrier. Subsequent movements against or along the pointer
+barrier are assigned the same event ID. The event generated by the pointer
+leaving the barrier, or being released by a client request, is the last
+event with this event ID. Any future movements of this device blocked by
+this barrier will be assigned a new event ID.
+
+Pointer barrier events are delivered exclusively to the client that created
+the barrier, and to the window specified in the CreatePointerBarrier
+request (the "barrier window"). A pointer barrier blocks pointer movement
+regardless of whether its window is mapped and/or viewable. If the pointer
+barrier window is destroyed, the pointer barrier remains blocking but a
+client will not receive further events.
+
+If a device is actively grabbed by a client or a passive grab activated
+for this client, and the pointer moves against a pointer barrier created by
+this client and the grab-window is the barrier window, that client will
+receive pointer barrier events if:
+- owner-events is true or false and the grab's event mask includes
+  pointer barrier events, or
+- owner-events is true and the client has selected for barrier events on the
+  barrier window.
+
+If the grab-window is not the barrier window, the client will receive events
+if:
+- the client has selected for barrier events on the barrier window.
+
+If the barrier is not owned by this client, no barrier events are sent to
+this client. The client owning the barrier will receive events if:
+- the client has pointer barrier events selected on the window associated
+  with the pointer barrier
+
+The BarrierDeviceIsGrabbed flag is set whenever a pointer barrier event is
+generated while the device is actively grabbed by any client or a passive
+grab has activated for this device prior to the event.
+
 [[glossary-notations]]
 Notations used in this document
 -------------------------------
@@ -615,7 +669,7 @@
 
     FP1616
             Fixed point decimal in 16.16 format as one INT16 and one CARD16.
-            The INT16 contains the integral part, the CARD32 the decimal 
fraction
+            The INT16 contains the integral part, the CARD16 the decimal 
fraction
             shifted by 16.
 
     FP3232
@@ -623,6 +677,11 @@
             The INT32 contains the integral part, the CARD32 the decimal 
fraction
             shifted by 32.
 
+    MODIFIERMASK
+            A MODIFIERMASK is a binary mask defined as (1 << modifier map 
index).
+            A SETofMODIFIERMASK is a binary OR of zero or more MODIFIERMASK or
+            GrabAnyModifier.
+
     VALUATORMASK
             A binary mask defined as (1 << valuator number).
             A SETofVALUATORMASK is a binary OR of zero or more VALUATORMASK.
@@ -639,8 +698,8 @@
 
 
 [[requests]]
-Requests:
----------
+Requests
+--------
 
 The server does not guarantee that the length of a reply remains constant in
 future revisions of XI2. A client must always retrieve the exact length of the
@@ -655,6 +714,8 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 [[requests-queryversion]]
+XIQueryVersion
+^^^^^^^^^^^^^^
     ┌───
         XIQueryVersion
         major_version:          CARD16
@@ -679,6 +740,8 @@
 If major_version is less than 2, a BadValue error occurs.
 
 [[requests-querydevice]]
+XIQueryDevice
+^^^^^^^^^^^^^
     ┌───
         XIQueryDevice
         DEVICE                  deviceid
@@ -696,39 +759,39 @@
                  name:                  LISTofCHAR8
                  classes:               LISTofCLASS }
 
-    CLASS { BUTTONCLASS, KEYCLASS, AXISCLASS, SCROLLCLASS, TOUCHCLASS }
-
-    BUTTONCLASS { type:                 ButtonClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  buttons_len:          CARD16
-                  state:                SETofBUTTONMASK
-                  labels:               LISTofATOM }
-
-    KEYCLASS    { type:                 KeyClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  num_keys:             CARD16
-                  keys:                 LISTofCARD32 }
-
-    AXISCLASS   { type:                 AxisClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  axisnumber:           CARD16
-                  label:                ATOM
-                  min:                  FP3232
-                  max:                  FP3232
-                  value:                FP3232
-                  resolution:           CARD32
-                  mode:                 CARD8 }
+    CLASS { BUTTONCLASS, KEYCLASS, VALUATORCLASS, SCROLLCLASS, TOUCHCLASS }
 
-    SCROLLCLASS¹ {type:                 ScrollClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  axisnumber:           CARD16
-                  scroll_type:          SCROLLTYPE
-                  flags:                SETofSCROLLFLAGS
-                  increment:            FP3232 }
+    BUTTONCLASS   { type:                 ButtonClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    num_buttons:          CARD16
+                    state:                SETofBUTTONMASK
+                    labels:               LISTofATOM }
+
+    KEYCLASS      { type:                 KeyClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    num_keys:             CARD16
+                    keys:                 LISTofCARD32 }
+
+    VALUATORCLASS { type:                 ValuatorClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    number:               CARD16
+                    label:                ATOM
+                    min:                  FP3232
+                    max:                  FP3232
+                    value:                FP3232
+                    resolution:           CARD32
+                    mode:                 CARD8 }
+
+    SCROLLCLASS¹  { type:                 ScrollClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    number:               CARD16
+                    scroll_type:          SCROLLTYPE
+                    flags:                SETofSCROLLFLAGS
+                    increment:            FP3232 }
 
     SCROLLTYPE { Vertical, Horizontal }
 
@@ -820,15 +883,15 @@
     keys
         List of keycodes provided.
 
-    AxisClass:
+    ValuatorClass:
     type
-        Always AxisClass.
+        Always ValuatorClass.
     length
         Length in 4 byte units.
     sourceid
         The device this class originates from.
-    axisnumber
-        Axis number of this axis. The axis number is in device-native
+    number
+        Valuator number of this axis. The valuator number is in device-native
         order and potential axis mappings are ignored.
     label
         Atom specifying the axis name. An Atom of None specifies an unlabeled
@@ -850,8 +913,8 @@
     ScrollClass:
     type
         Always ScrollClass.
-    axisnumber
-        Axis number that is referred to. This axis number must be listed in
+    number
+        Valuator number that is referred to. This valuator number must be 
listed in
         the ValuatorClassInfo.
     scroll_type:
         Vertical for a vertical scrolling axis, Horizontal for a horizontal
@@ -866,7 +929,7 @@
         The valuator delta equivalent to one positive unit of scrolling.
 
 A ScrollClass may only exist if the device has at least one ValuatorClass
-and each axisnumber listed in any ScrollClass. Only one ScrollClass may
+and each valuator number listed in any ScrollClass. Only one ScrollClass may
 exist per ValuatorClass.
 
     TouchClass:
@@ -887,6 +950,8 @@
 events.
 
 [[requests-selectevents]]
+XISelectEvents
+^^^^^^^^^^^^^^
     ┌───
         XISelectEvents
             window:         Window
@@ -938,6 +1003,8 @@
 BadAccess error occurs.
 
 [[requests-getselectedevents]]
+XIGetSelectedEvents
+^^^^^^^^^^^^^^^^^^^
     ┌───
         XIGetSelectedEvents
             window:         Window
@@ -962,6 +1029,8 @@
 given window.
 
 [[requests-querypointer]]
+XIQueryPointer
+^^^^^^^^^^^^^^
     ┌───
         XIQueryPointer
             window:         Window
@@ -1007,6 +1076,8 @@
 pointer, a BadDevice error results.
 
 [[requests-warppointer]]
+XIWarpPointer
+^^^^^^^^^^^^^
     ┌───
         XIWarpPointer
             src_win:         Window
@@ -1053,6 +1124,8 @@
 moved the pointer.
 
 [[requests-changecursor]]
+XIChangeCursor
+^^^^^^^^^^^^^^
     ┌───
         XIChangeCursor
             win:             Window
@@ -1085,6 +1158,8 @@
 is returned.
 
 [[requests-changehierarchy]]
+XIChangeHierarchy
+^^^^^^^^^^^^^^^^^
     ┌───
         XIChangeHierarchy
             num_changes:     CARD8
@@ -1193,6 +1268,8 @@
         Deviceid of the slave device.
 
 [[requests-setclientpointer]]
+XISetClientPointer
+^^^^^^^^^^^^^^^^^^
     ┌───
         XISetClientPointer
             win:             Window
@@ -1225,6 +1302,8 @@
 BadWindow error is returned.
 
 [[requests-getclientpointer]]
+XIGetClientPointer
+^^^^^^^^^^^^^^^^^^
     ┌───
         XIGetClientPointer
             win:             Window
@@ -1247,6 +1326,8 @@
 in response to an ambiguous request.
 
 [[requests-setfocus]]
+XISetFocus
+^^^^^^^^^^
     ┌───
         XISetFocus
             focus:           Window
@@ -1278,6 +1359,8 @@
 Otherwise, the last-focus-change time is set to the specified time.
 
 [[requests-getfocus]]
+XIGetFocus
+^^^^^^^^^^
     ┌───
         XIGetFocus
             deviceid:        DEVICEID
@@ -1288,6 +1371,8 @@
 Return the current focus window for the given device.
 
 [[requests-grabdevice]]
+XIGrabDevice
+^^^^^^^^^^^^
     ┌───
         XIGrabDevice
             deviceid:        DEVICEID
@@ -1379,6 +1464,8 @@
 To release a grab of a device, use XIUngrabDevice.
 
 [[requests-ungrabdevice]]
+XIUngrabDevice
+^^^^^^^^^^^^^^
     ┌───
         XIUngrabDevice
             deviceid:        DEVICEID
@@ -1402,8 +1489,10 @@
 active device grab becomes not viewable.
 
 [[requests-allowevents]]
+XIAllowEvents
+^^^^^^^^^^^^^
     ┌───
-        XIAllowEvents:
+        XIAllowEvents
             deviceid:        DEVICEID
             time:            TIMESTAMP or CurrentTime
             event_mode:      { AsyncDevice, SyncDevice,
@@ -1525,6 +1614,8 @@
         sequence, ownership will be passed on to the next listener.
 
 [[requests-passivegrabdevice]]
+XIPassiveGrabDevice
+^^^^^^^^^^^^^^^^^^^
     ┌───
         XIPassiveGrabDevice
             deviceid:        DEVICE
@@ -1538,17 +1629,17 @@
             num_modifiers:   INT16
             mask_len:        CARD16
             masks:           SETofEVENTMASK
-            modifiers:       CARD32 or GrabAnyModifier
+            modifiers:       LISTofSETofMODIFIERMASK
             ▶
             num_modifiers_return:    INT16
-            modifiers_return:        GRABMODIFIERINFO
+            modifiers_return:        LISTofGRABMODIFIERINFO
     └───
 
         GRABTYPE         { GrabtypeButton, GrabtypeKeycode, GrabtypeEnter,
                            GrabtypeFocusIn, GrabtypeTouchBegin¹ }
 
         GRABMODIFIERINFO {   status:    Access
-                             modifiers: CARD32 }
+                             modifiers: SETofMODIFIERMASK }
 
     ¹ since XI 2.2
 
@@ -1713,6 +1804,8 @@
 client.
 
 [[requests-passiveungrabdevice]]
+XIPassiveUngrabDevice
+^^^^^^^^^^^^^^^^^^^^^
     ┌───
         XIPassiveUngrabDevice
             deviceid:        DEVICEID
@@ -1720,7 +1813,7 @@
             grab_type:       GRABTYPE
             grab_window:     Window
             num_modifiers:   INT16
-            modifiers:       MODIFIERINFO
+            modifiers:       LISTofSETofMODIFIERMASK
     └───
 
 Release an explicit passive grab on the specified input device.
@@ -1745,6 +1838,8 @@
 combination on the grab_window.
 
 [[requests-listproperties]]
+XIListProperties
+^^^^^^^^^^^^^^^^
     ┌───
         XIListProperties
             deviceid:        DEVICEID
@@ -1757,12 +1852,14 @@
 
         deviceid
             The device to list the properties for.
-        num_atoms
-            Number of atoms in the reply
-        atoms
+        num_properties
+            Number of properties in the reply
+        properties
             All properties on the device.
 
 [[requests-changeproperty]]
+XIChangeProperty
+^^^^^^^^^^^^^^^^
     ┌───
         XIChangeProperty
             deviceid:        DEVICEID
@@ -1811,6 +1908,8 @@
 This request generates an XIPropertyEvent.
 
 [[requests-deleteproperty]]
+XIDeleteProperty
+^^^^^^^^^^^^^^^^
     ┌───
         XIDeleteProperty
             deviceid:        DEVICEID
@@ -1828,6 +1927,8 @@
 If the property does not exist, this request does nothing.
 
 [[requests-getproperty]]
+XIGetProperty
+^^^^^^^^^^^^^
     ┌───
         XIGetProperty
             deviceid:        DEVICEID
@@ -1892,6 +1993,48 @@
 delete is True and the bytes_after is zero, the property is also
 deleted from the device, and a XIPropertyNotify event is generated on
 the device.  
+
+[[requests-xi23]]
+Requests introduced in version 2.3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[[requests-barrierreleasepointer]]
+XIBarrierReleasePointer
+^^^^^^^^^^^^^^^^^^^^^^^
+    ┌───
+        XIBarrierReleasePointer
+            num_items:       CARD32
+            ▶
+            data:            LISTofBARRIERRELEASEINFO
+    └───
+
+    BARRIERRELEASEINFO { deviceid: DEVICEID,
+                         barrier:  Barrier,
+                         eventid: CARD32 }
+
+Release a pointer currently blocked by a barrier. In the future, movement of
+this pointer against the barrier will not be blocked.
+
+        deviceid
+            The device currently being blocked by a barrier
+        barrier
+            The barrier currently blocking the device
+        eventid
+            The unique event ID assigned to this barrier event sequence
+
+If the barrier given does not currently block this device, or the eventid
+is invalid, this request does nothing.
+
+Releasing a pointer barrier is only valid during one barrier event sequence,
+and only applies to the next movement of this device against this barrier.
+If the pointer moves away from the barrier following a
+XIBarrierReleasePointer request, the release request is discarded. In the
+future, if the pointer moves against the barrier again, a new eventid is
+assigned and the client must re-issue the XIBarrierReleasePointer request.
+
+If the device is not a master pointer device, a BadDevice error results.
+If the barrier does not name a valid barrier, a BadValue error results.
+
      
 [[events]]
 Events
@@ -1936,6 +2079,11 @@
         - RawTouchUpdate
         - RawTouchEnd
 
+Version 2.3:
+
+        - BarrierHit
+        - BarrierLeave
+
 All events have a set of common fields specified as EVENTHEADER.
 
 
@@ -1968,8 +2116,10 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 [[events-hierarchyevent]]
+HierarchyEvent
+^^^^^^^^^^^^^^
     ┌───
-        HierarchyEvent:
+        HierarchyEvent
             EVENTHEADER
             flags:                      SETofHIERARCHYMASK
             num_info:                   CARD16
@@ -2016,8 +2166,10 @@
 device. Clients should ignore deviceid and instead use the devices list.
 
 [[events-devicechangedevent]]
+DeviceChangedEvent
+^^^^^^^^^^^^^^^^^^
     ┌───
-        DeviceChangedEvent:
+        DeviceChangedEvent
             EVENTHEADER
             reason:                CHANGEREASON
             source:                DEVICEID
@@ -2050,8 +2202,10 @@
 For a detailed description of classes, see the XIQueryDevice request.
 
 [[events-deviceevent]]
+DeviceEvent
+^^^^^^^^^^^
     ┌───
-        DeviceEvent:
+        DeviceEvent
             EVENTHEADER
             detail:                     CARD32
             root:                       Window
@@ -2160,7 +2314,8 @@
     locked_mods
         XKB locked modifier state.
 
-    Group state in group is detailed as follows:
+Group state in group is detailed as follows:
+
     base_group
         XKB base group state.
     latched_group
@@ -2193,6 +2348,8 @@
 Touch events do not generate enter/leave events.
 
 [[events-rawevent]]
+RawEvent
+^^^^^^^^
     ┌───
         RawEvent
             EVENTHEADER
@@ -2242,6 +2399,8 @@
     ¹ since XI 2.2
 
 [[events-enterleave]]
+Enter or Leave or FocusIn or FocusOut
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     ┌───
         Enter or Leave or FocusIn or FocusOut
             EVENTHEADER
@@ -2323,6 +2482,8 @@
         Button state before the event.
 
 [[events-propertyevent]]
+XIPropertyEvent
+^^^^^^^^^^^^^^^
     ┌───
         XIPropertyEvent
             EVENTHEADER
@@ -2343,6 +2504,8 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 [[events-touchownershipevent]]
+TouchOwnershipEvent
+^^^^^^^^^^^^^^^^^^^
     ┌───
         TouchOwnershipEvent
             EVENTHEADER
@@ -2371,6 +2534,95 @@
     flags
         A bitmask of flags for this event.
 
+[[events-xi23]]
+Events introduced in version 2.3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[[events-barrierevent]]
+BarrierEvent
+^^^^^^^^^^^^
+    ┌───
+        BarrierEvent
+            EVENTHEADER
+            eventid:                    CARD32
+            root:                       Window
+            event:                      Window
+            barrier:                    Barrier
+            dtime:                      CARD32
+            flags:                      SETofBARRIERFLAGS
+            sourceid:                   DEVICEID
+            root_x:                     FP1616
+            root_y:                     FP1616
+            dx:                         FP3232
+            dy:                         FP3232
+    └───
+
+    BARRIERFLAGS { PointerReleased, DeviceIsGrabbed }
+
+A BarrierEvent indicates interaction between a barrier and a pointer device.
+If the event type is BarrierHit, pointer movement has been blocked by a
+barrier. If the event type is BarrierLeave, a pointer previously blocked
+by a barrier has moved away from that barrier, or has moved
+through the blocking barrier following an earlier XIBarrierReleasePointer
+request.
+
+    eventid
+       The unique event ID for this barrier event sequence.
+    root
+    event
+        The root window or barrier window, respectively. The barrier window
+        is always the drawable specified in in the CreatePointerBarrier 
request.
+    barrier
+        The barrier blocking pointer movement.
+    dtime
+        The relative time in milliseconds between the last event and this
+        event.
+    flags
+        A set of flags that apply to this barrier event
+        PointerReleased:
+           The pointer has moved through the barrier following a
+           XIBarrierReleasePointer request (BarrierLeave only).
+        DeviceIsGrabbed:
+           The pointer device that generated this event is currently
+           grabbed.
+    sourceid
+        The source device that originally generated the event.
+    root_x
+    root_y
+        The position of the pointer in screen coordinates (16.16 fixed
+        point), after being constrained by barrier and/or screen extents.
+    dx
+    dy
+        The relative movement of the pointer from its previous position to
+        the new position if pointer movement were not constrained by this
+        barrier.
+
+Root coordinates in barrier events represent the position of the cursor
+after confinement by barriers, screens and RandR output extents.
+
+Barrier event IDs are provided in the eventid field of barrier events. Its
+value is always provided in every barrier event. Event IDs are
+represented as unsigned 32-bit values and increase strictly monotonically in
+value for each new barrier event sequence, wrapping back to 0 upon reaching
+the numerical limit of IDs. The increment between two event IDs is
+indeterminate. Clients may not assume that any future barrier constraints
+will have specific event IDs. IDs are unique per device per barrier.
+
+If a pointer is actively grabbed after a barrier event sequence has
+initiated, future barrier events of this sequence continue to use the same
+eventid, but all barrier events have the DeviceIsGrabbed flag set. If the
+pointer is ungrabbed, future events of this sequence have the same eventid
+and the DeviceIsGrabbed flag is unset.
+
+The PointerReleased flag may only be set on a BarrierLeave event.
+A BarrierLeave(PointerReleased) event is generated when the pointer moves
+through the barrier following a XIBarrierReleasePointer request. The time
+between the XIBarrierReleasePointer and the BarrierLeave event thus depends
+on user input.
+A BarrierLeave(PointerReleased) event is also generated if the barrier is
+destroyed while pointer movement is constrained by the barrier, or the
+master pointer blocked by the barrier is removed. This event
+has a dx/dy of 0/0.
 
 :numbered!:
 [[xi22-usecases]]

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to