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]
