ChangeLog | 225 +++++++++++++++++++ configure.ac | 4 debian/changelog | 46 +++ debian/control | 4 debian/libxi6.symbols | 2 debian/patches/0001_fix_button_mask_and_labels.patch | 59 ---- debian/patches/add-missing-xi_rawtouch.diff | 29 ++ debian/patches/series | 2 debian/rules | 5 include/X11/extensions/XInput2.h | 47 +++ man/Makefile.am | 9 man/XGetDeviceControl.txt | 12 - man/XIBarrierReleasePointer.txt | 76 ++++++ man/XIGrabButton.txt | 3 man/XIQueryVersion.txt | 6 src/Makefile.am | 3 src/XExtInt.c | 185 +++++++++++---- src/XGetFCtl.c | 14 - src/XIBarrier.c | 81 ++++++ src/XIQueryVersion.c | 6 src/XIint.h | 2 src/XListDev.c | 3 22 files changed, 684 insertions(+), 139 deletions(-)
New commits: commit 6a0736ca6ab0d6bbdbb1fd9cbef56abecd71ec14 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Thu Feb 7 00:12:16 2013 +0200 release to raring diff --git a/debian/changelog b/debian/changelog index da9e6cd..2eeda53 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libxi (2:1.6.99.1-0ubuntu1) raring; urgency=low + + * Sync from unreleased debian git. + - new upstream release + + -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:56:21 +0200 + libxi (2:1.6.99.1-1) UNRELEASED; urgency=low * New upstream release. commit 21eef91cfae057ea05e3ae466b9ad0548531e53d Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Thu Feb 7 00:10:03 2013 +0200 libxi6.symbols: Added new symbols. diff --git a/debian/changelog b/debian/changelog index f0517a2..b252c4c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ libxi (2:1.6.99.1-1) UNRELEASED; urgency=low * add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in XInputCopyCookie. * control: Bump x11proto-input-dev build-dep to 2.2.99.1. + * libxi6.symbols: Added new symbols. -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:43:08 +0200 diff --git a/debian/libxi6.symbols b/debian/libxi6.symbols index 0857960..c8ee08a 100644 --- a/debian/libxi6.symbols +++ b/debian/libxi6.symbols @@ -29,6 +29,8 @@ libXi.so.6 libxi6 #MINVER# XGrabDevice@Base 0 XIAllowEvents@Base 2:1.2.99.4 XIAllowTouchEvents@Base 2:1.5.99.2 + XIBarrierReleasePointer@Base 2:1.6.99.1 + XIBarrierReleasePointers@Base 2:1.6.99.1 XIChangeHierarchy@Base 2:1.2.99.4 XIChangeProperty@Base 2:1.2.99.4 XIDefineCursor@Base 2:1.2.99.4 commit 885e2247d055172649a67d4e11e7fc48e7831489 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Thu Feb 7 00:05:21 2013 +0200 control: Bump x11proto-input-dev build-dep to 2.2.99.1. diff --git a/debian/changelog b/debian/changelog index b37e8f2..f0517a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ libxi (2:1.6.99.1-1) UNRELEASED; urgency=low * control: Bump policy to 3.9.4, no changes. * add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in XInputCopyCookie. + * control: Bump x11proto-input-dev build-dep to 2.2.99.1. -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:43:08 +0200 diff --git a/debian/control b/debian/control index c3aa7d2..6e7964f 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 8.1.3), x11proto-core-dev (>= 7.0.13), x11proto-xext-dev (>= 7.0.3), - x11proto-input-dev (>= 2.1.99.6), + x11proto-input-dev (>= 2.2.99.1), libx11-dev (>= 2:1.4.99.1), libxext-dev (>= 2:1.1.1-3), xmlto, commit 83e6dba0860dc19500f7444c8eb89b93d8cadfd5 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Wed Feb 6 23:52:49 2013 +0200 add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in XInputCopyCookie. diff --git a/debian/changelog b/debian/changelog index a31616c..b37e8f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ libxi (2:1.6.99.1-1) UNRELEASED; urgency=low * New upstream release. * control: Bump policy to 3.9.4, no changes. + * add-missing-xi_rawtouch.diff: Upstream commit to add XI_RawTouch in + XInputCopyCookie. -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:43:08 +0200 diff --git a/debian/patches/add-missing-xi_rawtouch.diff b/debian/patches/add-missing-xi_rawtouch.diff new file mode 100644 index 0000000..4ee049e --- /dev/null +++ b/debian/patches/add-missing-xi_rawtouch.diff @@ -0,0 +1,29 @@ +commit 236be512c81b76dad711bec481e2139584006c4c +Author: Benjamin Tissoires <benjamin.tissoi...@gmail.com> +Date: Mon Jan 14 18:32:05 2013 +0100 + + Add missing XI_RawTouch* in XInputCopyCookie + + Looks like XI_RawTouch* events are missing in the big switch in this function. + When running XIT tests for multitouch devices, several following errors appears: + XInputCopyCookie: Failed to copy evtype 22 + XInputCopyCookie: Failed to copy evtype 23 + XInputCopyCookie: Failed to copy evtype 24 + + Signed-off-by: Benjamin Tissoires <benjamin.tissoi...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +diff --git a/src/XExtInt.c b/src/XExtInt.c +index 57d071d..507573b 100644 +--- a/src/XExtInt.c ++++ b/src/XExtInt.c +@@ -1484,6 +1484,9 @@ XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out + case XI_RawButtonPress: + case XI_RawButtonRelease: + case XI_RawMotion: ++ case XI_RawTouchBegin: ++ case XI_RawTouchUpdate: ++ case XI_RawTouchEnd: + ret = copyRawEvent(in, out); + break; + case XI_BarrierHit: diff --git a/debian/patches/series b/debian/patches/series index fdffa2a..67f42a8 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1 @@ -# placeholder +add-missing-xi_rawtouch.diff commit 6f7629d5d8e7a7a3f5278aa46844e748d17cf79e Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Wed Feb 6 23:45:01 2013 +0200 control: Bump policy to 3.9.4, no changes. diff --git a/debian/changelog b/debian/changelog index 47ddefd..a31616c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ libxi (2:1.6.99.1-1) UNRELEASED; urgency=low * New upstream release. + * control: Bump policy to 3.9.4, no changes. -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:43:08 +0200 diff --git a/debian/control b/debian/control index a503100..c3aa7d2 100644 --- a/debian/control +++ b/debian/control @@ -22,7 +22,7 @@ Build-Depends: xorg-sgml-doctools (>= 1:1.8), xsltproc, w3m, -Standards-Version: 3.9.3 +Standards-Version: 3.9.4 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxi Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxi.git commit c7cd279bd887fe4202e7033836826849de3db822 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Wed Feb 6 23:44:39 2013 +0200 update changelogs diff --git a/ChangeLog b/ChangeLog index dcca8e8..40f5556 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,149 @@ +commit db3b9ba3404f6d128e7826aa489a34fd206b20ea +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Dec 26 15:29:43 2012 +1000 + + libXi 1.6.99.1 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit af9f26510d87eee71f1cd688d7dcfbf173c13943 +Merge: 31c6cf9 9e8a55d +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Dec 17 14:34:53 2012 +1000 + + Merge branch 'barriers' + +commit 9e8a55dfcb3dc2b42cd7e08e8e6e65ea1dd54251 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 7 15:47:41 2012 +1000 + + man: add man-page for XIBarrierReleasePointer + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 60d7386a1b98cc7760d55d6df1f90e6259d122fa +Author: Jasper St. Pierre <jstpie...@mecheye.net> +Date: Thu Nov 1 17:00:19 2012 -0400 + + Add support for pointer barrier events + + Signed-off-by: Jasper St. Pierre <jstpie...@mecheye.net> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit f694bd3fcf38213ae787a3ebe4e8b2df8b2dcdc7 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 7 14:39:50 2012 +1000 + + Bump to 1.6.99 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 31c6cf9f6fbcc7e90e3d6b7927664cbe54e27edf +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Dec 6 10:38:16 2012 +1000 + + Fix const compiler warnings + + XExtInt.c:80:38: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + XExtInt.c:150:5: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + XExtInt.c:151:5: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + XExtInt.c:152:5: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + XExtInt.c:153:5: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + XExtInt.c:154:5: warning: initialization discards 'const' qualifier from + pointer target type [enabled by default] + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> + +commit b4e07e7acc84f68ed2d37557d64d5655cc262ed5 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Dec 6 10:27:35 2012 +1000 + + Fix compiler warnings + + XIQueryVersion.c: In function '_xiQueryVersion': + XIQueryVersion.c:63:26: warning: declaration of 'info' shadows a parameter + [-Wshadow] + XIQueryVersion.c:53:73: warning: shadowed declaration is here [-Wshadow] + + XExtInt.c: In function 'XInputWireToEvent': + XExtInt.c:823:25: warning: declaration of 'i' shadows a previous local + [-Wshadow] + XExtInt.c:502:18: warning: shadowed declaration is here [-Wshadow] + XExtInt.c:850:25: warning: declaration of 'i' shadows a previous local + [-Wshadow] + XExtInt.c:502:18: warning: shadowed declaration is here [-Wshadow] + + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:166:17: note: previous declaration of + '_xidevicebusy' was here + XExtInt.c:101:12: warning: redundant redeclaration of + '_XiGetDevicePresenceNotifyEvent' [-Wredundant-decls] + + XExtInt.c:76:13: warning: redundant redeclaration of '_xibaddevice' + [-Wredundant-decls] + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:162:17: note: previous declaration of + '_xibaddevice' was here + XExtInt.c:81:13: warning: redundant redeclaration of '_xibadclass' + [-Wredundant-decls] + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:163:17: note: previous declaration of + '_xibadclass' was here + XExtInt.c:86:13: warning: redundant redeclaration of '_xibadevent' + [-Wredundant-decls] + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:164:17: note: previous declaration of + '_xibadevent' was here + XExtInt.c:91:13: warning: redundant redeclaration of '_xibadmode' + [-Wredundant-decls] + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:165:17: note: previous declaration of + '_xibadmode' was here + XExtInt.c:96:13: warning: redundant redeclaration of '_xidevicebusy' + [-Wredundant-decls] + In file included from XExtInt.c:64:0: + ../include/X11/extensions/XInput.h:166:17: note: previous declaration of + '_xidevicebusy' was here + + XListDev.c: In function 'ParseClassInfo': + XListDev.c:116:33: warning: declaration of 'k' shadows a previous local + [-Wshadow] + XListDev.c:109:12: warning: shadowed declaration is here [-Wshadow] + + XGetFCtl.c: In function 'XGetFeedbackControl': + XGetFCtl.c:184:26: warning: declaration of 'i' shadows a previous local + [-Wshadow] + XGetFCtl.c:72:17: warning: shadowed declaration is here [-Wshadow] + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> + +commit 845550471fcd95d77e8d738ab8798d8e6e568b4a +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Nov 7 08:51:23 2012 +1000 + + man: add generation of missing man pages for XIGrabTouchBegin + + The man page itself already contained the description, but it was missing + from NAME so the shadow man pages were not generated. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Chase Douglas <chase.doug...@ubuntu.com> + +commit 8c0eb1b6b4017b1e886981dc32cea90f2d4b9b64 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Oct 11 13:33:45 2012 +1000 + + man: fix formatting issues in XGetDeviceControl(3) + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + commit ae163b6202d844a46541928d00049b29cbdf930f Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu May 3 16:01:35 2012 +1000 diff --git a/debian/changelog b/debian/changelog index dc91ca6..47ddefd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libxi (2:1.6.99.1-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Timo Aaltonen <tjaal...@ubuntu.com> Wed, 06 Feb 2013 23:43:08 +0200 + libxi (2:1.6.1-1) unstable; urgency=low [ Julien Cristau ] commit db3b9ba3404f6d128e7826aa489a34fd206b20ea Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed Dec 26 15:29:43 2012 +1000 libXi 1.6.99.1 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index e79fe12..d2af70f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.6.99], +AC_INIT([libXi], [1.6.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) commit 9e8a55dfcb3dc2b42cd7e08e8e6e65ea1dd54251 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Dec 7 15:47:41 2012 +1000 man: add man-page for XIBarrierReleasePointer Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/man/Makefile.am b/man/Makefile.am index af63952..b92d486 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -25,6 +25,7 @@ libmandir = $(LIB_MAN_DIR) # Source files for X Input v2 man pages XI2_txt = \ + XIBarrierReleasePointer.txt \ XIChangeHierarchy.txt \ XIDefineCursor.txt \ XIGrabButton.txt \ @@ -76,6 +77,7 @@ libman_xml = $(libman_txt:.txt=.xml) # They are created by the xmlto command when generating man pages from DocBook # The shadow man page contains a gtroff .so request to include the main man page XI2_shadows = \ + XIBarrierReleasePointers.man \ XIUndefineCursor.man \ XIUngrabButton.man \ XIGrabKeycode.man \ @@ -152,6 +154,7 @@ XIDeleteProperty.man: XIChangeProperty.man XIUngrabEnter.man XIGrabFocusIn.man XIUngrabFocusIn.man: XIGrabEnter.man XIGetSelectedEvents.man: XISelectEvents.man XIFreeDeviceInfo.man: XIQueryDevice.man +XIBarrierReleasePointers.man: XIBarrierReleasePointer.man # String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure # Unable to use __libmansuffix__ as underscores are lost in txt --> xml conversion diff --git a/man/XIBarrierReleasePointer.txt b/man/XIBarrierReleasePointer.txt new file mode 100644 index 0000000..4fa48fe --- /dev/null +++ b/man/XIBarrierReleasePointer.txt @@ -0,0 +1,76 @@ +XIBARRIERRELEASEPOINTER(libmansuffix) +===================================== + +NAME +---- + + XIBarrierReleasePointer, XIBarrierReleasePointers - allow pointer movement across a pointer barrier + +SYNOPSIS +-------- + + #include <X11/extensions/XInput2.h> + + int XIBarrierReleasePointer( Display *display, + int deviceid, + PointerBarrier barrier, + BarrierEventID eventid); + + int XIBarrierReleasePointers( Display *display, + XIBarrierReleasePointerInfo *barriers, + int num_barriers); + + display + Specifies the connection to the X server. + + deviceid + Specifies the device allowed to move across the barrier. + + barrier + Specifies the barrier. + + eventid + Specifies the unique event ID for this barrier event sequence. + + barriers + List of deviceid, barrier, eventid triplets. + + num_barriers + Number of elements in barriers. + +DESCRIPTION +----------- + + If a pointer is constrained by a pointer barrier, release the pointer + from the barrier and allow it to cross the barrier with the next motion. + If the pointer moves away from the barrier, this request does nothing. + + This request only releases the pointer for the given barrier event + sequence. If the pointer moves away from or through the barrier, a + XI_BarrierLeave event is generated. Future pointer movement constrained + by this barrier will assign a new eventid and require a new + XIBarrierReleasePointer request. + + If the pointer is not currently blocked by the barrier or the barrier + event sequence has ended, this request does nothing. + + XIBarrierReleasePointer and XIBarrierReleasePointers can generate a + BadDevice or BadValue error. + +DIAGNOSTICS +----------- + + BadDevice + An invalid device was specified. The device does not + exist or is not a master pointer device. + + BadValue + A value for a PointerBarrier argument does not name a defined + pointer barrier. + +See also +-------- + + XFixesCreatePointerBarrier(libmansuffix) + + commit 60d7386a1b98cc7760d55d6df1f90e6259d122fa Author: Jasper St. Pierre <jstpie...@mecheye.net> Date: Thu Nov 1 17:00:19 2012 -0400 Add support for pointer barrier events Signed-off-by: Jasper St. Pierre <jstpie...@mecheye.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 0f8ff43..e79fe12 100644 --- a/configure.ac +++ b/configure.ac @@ -28,7 +28,7 @@ XORG_WITH_ASCIIDOC(8.4.5) XORG_CHECK_MALLOC_ZERO # Obtain compiler/linker options for dependencies -PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.1.99.6]) +PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.2.99.1]) # Check for xmlto and asciidoc for man page conversion # (only needed by people building tarballs) diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h index 26de695..a746012 100644 --- a/include/X11/extensions/XInput2.h +++ b/include/X11/extensions/XInput2.h @@ -169,6 +169,16 @@ typedef struct int status; } XIGrabModifiers; +typedef XID PointerBarrier; +typedef unsigned int BarrierEventID; + +typedef struct +{ + int deviceid; + PointerBarrier barrier; + BarrierEventID eventid; +} XIBarrierReleasePointerInfo; + /** * Generic XI2 event. All XI2 events have the same header. */ @@ -328,6 +338,28 @@ typedef struct { int flags; } XITouchOwnershipEvent; +typedef struct { + int type; /* GenericEvent */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + int extension; /* XI extension offset */ + int evtype; + Time time; + int deviceid; + int sourceid; + Window event; + Window root; + double root_x; + double root_y; + double dx; + double dy; + int dtime; + int flags; + PointerBarrier barrier; + BarrierEventID eventid; +} XIBarrierEvent; + _XFUNCPROTOBEGIN extern Bool XIQueryPointer( @@ -603,6 +635,21 @@ XIGetProperty( unsigned char **data ); +extern void +XIBarrierReleasePointers( + Display* display, + XIBarrierReleasePointerInfo *barriers, + int num_barriers +); + +extern void +XIBarrierReleasePointer( + Display* display, + int deviceid, + PointerBarrier barrier, + BarrierEventID eventid +); + extern void XIFreeDeviceInfo(XIDeviceInfo *info); _XFUNCPROTOEND diff --git a/src/Makefile.am b/src/Makefile.am index 806265c..ee40753 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -13,7 +13,8 @@ XI2_sources = XIAllowEvents.c \ XIWarpPointer.c \ XIHierarchy.c \ XIDefineCursor.c \ - XIQueryPointer.c + XIQueryPointer.c \ + XIBarrier.c libXi_la_SOURCES = \ XAllowDv.c \ diff --git a/src/XExtInt.c b/src/XExtInt.c index 1c668c7..57d071d 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -124,6 +124,9 @@ wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie); static int wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in, XGenericEventCookie *cookie); +static int +wireToBarrierEvent(xXIBarrierEvent *in, + XGenericEventCookie *cookie); static /* const */ XEvent emptyevent; @@ -1022,6 +1025,16 @@ XInputWireToCookie( break; } return ENQUEUE_EVENT; + case XI_BarrierHit: + case XI_BarrierLeave: + *cookie = *(XGenericEventCookie*)save; + if (!wireToBarrierEvent((xXIBarrierEvent*)event, cookie)) + { + printf("XInputWireToCookie: CONVERSION FAILURE! evtype=%d\n", + ge->evtype); + break; + } + return ENQUEUE_EVENT; default: printf("XInputWireToCookie: Unknown generic event. type %d\n", ge->evtype); @@ -1403,7 +1416,21 @@ copyRawEvent(XGenericEventCookie *cookie_in, return True; } +static Bool +copyBarrierEvent(XGenericEventCookie *in_cookie, + XGenericEventCookie *out_cookie) +{ + XIBarrierEvent *in, *out; + + in = in_cookie->data; + + out = out_cookie->data = calloc(1, sizeof(XIBarrierEvent)); + if (!out) + return False; + *out = *in; + return True; +} static Bool XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out) @@ -1459,6 +1486,10 @@ XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out case XI_RawMotion: ret = copyRawEvent(in, out); break; + case XI_BarrierHit: + case XI_BarrierLeave: + ret = copyBarrierEvent(in, out); + break; default: printf("XInputCopyCookie: unknown evtype %d\n", in->evtype); ret = False; @@ -1958,3 +1989,34 @@ wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in, return 1; } + +#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (x).frac / (1ULL << 32)) + +static int +wireToBarrierEvent(xXIBarrierEvent *in, XGenericEventCookie *cookie) +{ + XIBarrierEvent *out = malloc(sizeof(XIBarrierEvent)); + + cookie->data = out; + + out->display = cookie->display; + out->type = in->type; + out->extension = in->extension; + out->evtype = in->evtype; + out->send_event = ((in->type & 0x80) != 0); + out->time = in->time; + out->deviceid = in->deviceid; + out->sourceid = in->sourceid; + out->event = in->event; + out->root = in->root; + out->root_x = FP1616toDBL(in->root_x); + out->root_y = FP1616toDBL(in->root_y); + out->dx = FP3232_TO_DOUBLE (in->dx); + out->dy = FP3232_TO_DOUBLE (in->dy); + out->dtime = in->dtime; + out->flags = in->flags; + out->barrier = in->barrier; + out->eventid = in->eventid; + + return 1; +} diff --git a/src/XIBarrier.c b/src/XIBarrier.c new file mode 100644 index 0000000..155b98b --- /dev/null +++ b/src/XIBarrier.c @@ -0,0 +1,81 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdint.h> +#include <X11/Xlibint.h> +#include <X11/extensions/XI2proto.h> +#include <X11/extensions/XInput2.h> +#include <X11/extensions/extutil.h> +#include "XIint.h" + +void +XIBarrierReleasePointers(Display *dpy, + XIBarrierReleasePointerInfo *barriers, + int num_barriers) +{ + XExtDisplayInfo *info = XInput_find_display(dpy); + xXIBarrierReleasePointerReq *req; + int extra = 0; + int i; + xXIBarrierReleasePointerInfo *b; + + if (!num_barriers) + return; + + extra = (num_barriers * sizeof(xXIBarrierReleasePointerInfo)); + + LockDisplay (dpy); + GetReqExtra (XIBarrierReleasePointer, extra, req); + req->reqType = info->codes->major_opcode; + req->ReqType = X_XIBarrierReleasePointer; + req->num_barriers = num_barriers; + + b = (xXIBarrierReleasePointerInfo *) &req[1]; + for (i = 0; i < num_barriers; i++, b++) { + b->deviceid = barriers[i].deviceid; + b->eventid = barriers[i].eventid; + b->barrier = barriers[i].barrier; + } + + UnlockDisplay (dpy); + SyncHandle (); +} + +void +XIBarrierReleasePointer(Display *dpy, + int deviceid, + PointerBarrier barrier, + BarrierEventID eventid) +{ + XIBarrierReleasePointerInfo info; + info.deviceid = deviceid; + info.barrier = barrier; + info.eventid = eventid; + + XIBarrierReleasePointers(dpy, &info, 1); +} diff --git a/src/XIint.h b/src/XIint.h index be4eafb..571bb23 100644 --- a/src/XIint.h +++ b/src/XIint.h @@ -22,6 +22,7 @@ #endif #define XInput_2_1 8 #define XInput_2_2 9 +#define XInput_2_3 10 extern XExtDisplayInfo *XInput_find_display(Display *); commit f694bd3fcf38213ae787a3ebe4e8b2df8b2dcdc7 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Dec 7 14:39:50 2012 +1000 Bump to 1.6.99 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 2d3a46a..0f8ff43 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.6.1], +AC_INIT([libXi], [1.6.99], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) commit 31c6cf9f6fbcc7e90e3d6b7927664cbe54e27edf Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Dec 6 10:38:16 2012 +1000 Fix const compiler warnings XExtInt.c:80:38: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] XExtInt.c:150:5: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] XExtInt.c:151:5: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] XExtInt.c:152:5: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] XExtInt.c:153:5: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] XExtInt.c:154:5: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> diff --git a/src/XExtInt.c b/src/XExtInt.c index fd1ae6c..1c668c7 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -77,7 +77,7 @@ int copy_classes(XIDeviceInfo *to, xXIAnyInfo* from, int *nclasses); int size_classes(xXIAnyInfo* from, int nclasses); static XExtensionInfo *xinput_info; -static /* const */ char *xinput_extension_name = INAME; +static const char *xinput_extension_name = INAME; static int XInputClose( Display * /* dpy */, @@ -143,7 +143,7 @@ static /* const */ XExtensionHooks xinput_extension_hooks = { XInputError, /* error_string */ }; -static char *XInputErrorList[] = { +static const char *XInputErrorList[] = { "BadDevice, invalid or uninitialized input device", /* BadDevice */ "BadEvent, invalid event type", /* BadEvent */ "BadMode, invalid mode parameter", /* BadMode */ commit b4e07e7acc84f68ed2d37557d64d5655cc262ed5 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Dec 6 10:27:35 2012 +1000 Fix compiler warnings XIQueryVersion.c: In function '_xiQueryVersion': XIQueryVersion.c:63:26: warning: declaration of 'info' shadows a parameter [-Wshadow] XIQueryVersion.c:53:73: warning: shadowed declaration is here [-Wshadow] XExtInt.c: In function 'XInputWireToEvent': XExtInt.c:823:25: warning: declaration of 'i' shadows a previous local [-Wshadow] XExtInt.c:502:18: warning: shadowed declaration is here [-Wshadow] XExtInt.c:850:25: warning: declaration of 'i' shadows a previous local [-Wshadow] XExtInt.c:502:18: warning: shadowed declaration is here [-Wshadow] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:166:17: note: previous declaration of '_xidevicebusy' was here XExtInt.c:101:12: warning: redundant redeclaration of '_XiGetDevicePresenceNotifyEvent' [-Wredundant-decls] XExtInt.c:76:13: warning: redundant redeclaration of '_xibaddevice' [-Wredundant-decls] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:162:17: note: previous declaration of '_xibaddevice' was here XExtInt.c:81:13: warning: redundant redeclaration of '_xibadclass' [-Wredundant-decls] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:163:17: note: previous declaration of '_xibadclass' was here XExtInt.c:86:13: warning: redundant redeclaration of '_xibadevent' [-Wredundant-decls] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:164:17: note: previous declaration of '_xibadevent' was here XExtInt.c:91:13: warning: redundant redeclaration of '_xibadmode' [-Wredundant-decls] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:165:17: note: previous declaration of '_xibadmode' was here XExtInt.c:96:13: warning: redundant redeclaration of '_xidevicebusy' [-Wredundant-decls] In file included from XExtInt.c:64:0: ../include/X11/extensions/XInput.h:166:17: note: previous declaration of '_xidevicebusy' was here XListDev.c: In function 'ParseClassInfo': XListDev.c:116:33: warning: declaration of 'k' shadows a previous local [-Wshadow] XListDev.c:109:12: warning: shadowed declaration is here [-Wshadow] XGetFCtl.c: In function 'XGetFeedbackControl': XGetFCtl.c:184:26: warning: declaration of 'i' shadows a previous local [-Wshadow] XGetFCtl.c:72:17: warning: shadowed declaration is here [-Wshadow] Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> diff --git a/src/XExtInt.c b/src/XExtInt.c index 27638bd..fd1ae6c 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -73,35 +73,6 @@ SOFTWARE. #define DONT_ENQUEUE False #define FP1616toDBL(x) ((x) * 1.0 / (1 << 16)) -extern void _xibaddevice( - Display * /* dpy */, - int * /* error */ -); - -extern void _xibadclass( - Display * /* dpy */, - int * /* error */ -); - -extern void _xibadevent( - Display * /* dpy */, - int * /* error */ -); - -extern void _xibadmode( - Display * /* dpy */, - int * /* error */ -); - -extern void _xidevicebusy( - Display * /* dpy */, - int * /* error */ -); - -extern int _XiGetDevicePresenceNotifyEvent( - Display * /* dpy */ -); - int copy_classes(XIDeviceInfo *to, xXIAnyInfo* from, int *nclasses); int size_classes(xXIAnyInfo* from, int nclasses); @@ -496,7 +467,6 @@ XInputWireToEvent( -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1u3de9-0006gh...@vasks.debian.org