ChangeLog | 647 ++++++++++++++++++++ Makefile.am | 2 configure.ac | 17 debian/changelog | 23 debian/control | 9 debian/libxi-dev.install | 6 debian/libxi6.symbols | 2 debian/patches/1_xi2.1.patch | 375 ------------ debian/patches/series | 1 debian/rules | 3 doc/.gitignore | 4 doc/Makefile.am | 63 -- doc/porting.xml | 1209 --------------------------------------- docbook.am | 105 +++ include/X11/extensions/XInput2.h | 62 ++ man/Makefile.am | 15 man/XGetFeedbackControl.txt | 55 - man/XIChangeProperty.txt | 16 man/XIGrabButton.txt | 107 ++- man/XIGrabDevice.txt | 15 man/XIGrabEnter.txt | 23 man/XIQueryDevice.txt | 69 ++ specs/.gitignore | 1 specs/Makefile.am | 65 -- specs/encoding.xml | 2 specs/inputlib.xml | 47 - specs/library.xml | 446 +++++++------- src/Makefile.am | 9 src/XAllowDv.c | 3 src/XChgDCtl.c | 4 src/XChgFCtl.c | 4 src/XChgKMap.c | 4 src/XChgKbd.c | 4 src/XChgPnt.c | 4 src/XChgProp.c | 4 src/XCloseDev.c | 4 src/XDevBell.c | 4 src/XExtInt.c | 170 +++++ src/XExtToWire.c | 4 src/XFreeLst.c | 4 src/XGMotion.c | 3 src/XGetBMap.c | 4 src/XGetCPtr.c | 3 src/XGetDCtl.c | 4 src/XGetFCtl.c | 4 src/XGetKMap.c | 4 src/XGetMMap.c | 3 src/XGetProp.c | 3 src/XGetVers.c | 4 src/XGrDvBut.c | 3 src/XGrDvKey.c | 3 src/XGrabDev.c | 3 src/XGtFocus.c | 3 src/XGtSelect.c | 3 src/XIAllowEvents.c | 50 + src/XIDefineCursor.c | 4 src/XIGetDevFocus.c | 3 src/XIGrabDevice.c | 4 src/XIHierarchy.c | 3 src/XIPassiveGrab.c | 36 + src/XIQueryDevice.c | 18 src/XIQueryPointer.c | 3 src/XIQueryVersion.c | 5 src/XISelEv.c | 3 src/XISetCPtr.c | 3 src/XISetDevFocus.c | 4 src/XIWarpPointer.c | 3 src/XIint.h | 16 src/XListDProp.c | 2 src/XListDev.c | 3 src/XOpenDev.c | 3 src/XQueryDv.c | 3 src/XSelect.c | 3 src/XSetBMap.c | 3 src/XSetDVal.c | 3 src/XSetMMap.c | 3 src/XSetMode.c | 3 src/XSndExEv.c | 14 src/XStFocus.c | 3 src/XUngrDev.c | 3 src/XUngrDvB.c | 3 src/XUngrDvK.c | 3 82 files changed, 1760 insertions(+), 2105 deletions(-)
New commits: commit 7bce4d47d420523e45d0105e1436f3ef63aa76b3 Author: Chase Douglas <chase.doug...@canonical.com> Date: Wed Dec 21 19:26:22 2011 -0800 releasing version 2:1.5.99.2-0ubuntu1 diff --git a/debian/changelog b/debian/changelog index 158bfc8..1c2b4b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low +libxi (2:1.5.99.2-0ubuntu1) precise; urgency=low * New upstream release candidate: - Really with multitouch support. @@ -6,7 +6,7 @@ libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low * Bump x11proto-input-dev dependencies * Bump XIAllowTouchEvents symbols minver due to added parameter - -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 19:22:11 -0800 + -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 19:25:46 -0800 libxi (2:1.4.99.1-1) experimental; urgency=low commit 7c82aa3bd51fbc2968c31d4b54c53cbcc08bef95 Author: Chase Douglas <chase.doug...@canonical.com> Date: Wed Dec 21 19:23:03 2011 -0800 Bump XIAllowTouchEvents symbols minver due to added parameter diff --git a/debian/changelog b/debian/changelog index 4570ee9..158bfc8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,8 +4,9 @@ libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low - Really with multitouch support. * Removed prototype multitouch patch * Bump x11proto-input-dev dependencies + * Bump XIAllowTouchEvents symbols minver due to added parameter - -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:33:36 -0800 + -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 19:22:11 -0800 libxi (2:1.4.99.1-1) experimental; urgency=low diff --git a/debian/libxi6.symbols b/debian/libxi6.symbols index a76b052..c5036ba 100644 --- a/debian/libxi6.symbols +++ b/debian/libxi6.symbols @@ -1,6 +1,6 @@ libXi.so.6 libxi6 #MINVER# XAllowDeviceEvents@Base 0 - XIAllowTouchEvents@Base 2:1.4.1-1ubuntu1 + XIAllowTouchEvents@Base 2:1.5.99.2 XChangeDeviceControl@Base 0 XChangeDeviceDontPropagateList@Base 0 XChangeDeviceKeyMapping@Base 0 commit 931fac8be0ff1a7d9af2c848ead6be9bd6b8951c Author: Chase Douglas <chase.doug...@canonical.com> Date: Wed Dec 21 16:34:09 2011 -0800 Bump x11proto-input-dev dependencies diff --git a/debian/changelog b/debian/changelog index b3f79bd..4570ee9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,8 +3,9 @@ libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low * New upstream release candidate: - Really with multitouch support. * Removed prototype multitouch patch + * Bump x11proto-input-dev dependencies - -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:31:58 -0800 + -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:33:36 -0800 libxi (2:1.4.99.1-1) experimental; urgency=low diff --git a/debian/control b/debian/control index fe6ae82..796a3f0 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 8.1.3), x11proto-core-dev (>= 7.0.13), x11proto-xext-dev (>= 7.0.3), - x11proto-input-dev (>= 2.0.1-1ubuntu1), + x11proto-input-dev (>= 2.1.99.4), libx11-dev (>= 2:1.3.3-2), libxext-dev (>= 2:1.1.1-3), xmlto, @@ -87,7 +87,7 @@ Depends: libxi6 (= ${binary:Version}), libx11-dev, libxext-dev, - x11proto-input-dev (>= 2.0.1-1ubuntu1), + x11proto-input-dev (>= 2.1.99.4), xorg-sgml-doctools (>= 1:1.5), Replaces: x11proto-input-dev (<< 1.9.99) commit 1cb07dfe9bf654dc1a39367d88e4ba0d28328221 Author: Chase Douglas <chase.doug...@canonical.com> Date: Wed Dec 21 16:32:15 2011 -0800 Removed prototype multitouch patch diff --git a/debian/changelog b/debian/changelog index 7d1143d..b3f79bd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,9 @@ libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low * New upstream release candidate: - Really with multitouch support. + * Removed prototype multitouch patch - -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:30:21 -0800 + -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:31:58 -0800 libxi (2:1.4.99.1-1) experimental; urgency=low diff --git a/debian/patches/1_xi2.1.patch b/debian/patches/1_xi2.1.patch deleted file mode 100644 index 70caf4d..0000000 --- a/debian/patches/1_xi2.1.patch +++ /dev/null @@ -1,375 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -1,7 +1,7 @@ dnl Process this file with autoconf to c - - # Initialize Autoconf - AC_PREREQ([2.60]) --AC_INIT([libXi], [1.4.3], -+AC_INIT([libXi], [1.4.3.99.1], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) - AC_CONFIG_SRCDIR([Makefile.am]) - AC_CONFIG_HEADERS([src/config.h]) -@@ -26,7 +26,7 @@ AC_PROG_LIBTOOL - XORG_CHECK_MALLOC_ZERO - - # Obtain compiler/linker options for depedencies --PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.2.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 1.9.99.902]) -+PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.2.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.0.99.1]) - - # Check for xmlto and asciidoc for man page conversion - # (only needed by people building tarballs) ---- a/include/X11/extensions/XInput2.h -+++ b/include/X11/extensions/XInput2.h -@@ -135,6 +135,25 @@ typedef struct - - typedef struct - { -+ int type; -+ int sourceid; -+ int mode; -+ int num_touches; -+} XITouchClassInfo; -+ -+typedef struct -+{ -+ int type; -+ int sourceid; -+ int number; -+ Atom label; -+ double min; -+ double max; -+ int resolution; -+} XITouchValuatorClassInfo; -+ -+typedef struct -+{ - int deviceid; - char *name; - int use; -@@ -292,6 +311,20 @@ typedef struct { - int what; - } XIPropertyEvent; - -+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; -+ unsigned int touchid; -+ unsigned int flags; -+} XITouchOwnershipEvent; -+ - _XFUNCPROTOBEGIN - - extern Bool XIQueryPointer( -@@ -415,6 +448,13 @@ extern Status XIAllowEvents( - Time time - ); - -+extern Status XIAllowTouchEvents( -+ Display* display, -+ int deviceid, -+ unsigned long touchid, -+ int event_mode -+); -+ - extern int XIGrabButton( - Display* display, - int deviceid, -@@ -466,6 +506,17 @@ extern int XIGrabFocusIn( - int num_modifiers, - XIGrabModifiers *modifiers_inout - ); -+ -+extern int XIGrabTouchBegin( -+ Display* display, -+ int deviceid, -+ Window grab_window, -+ int owner_events, -+ XIEventMask *mask, -+ int num_modifiers, -+ XIGrabModifiers *modifiers_inout -+); -+ - extern Status XIUngrabButton( - Display* display, - int deviceid, -@@ -496,6 +547,14 @@ extern Status XIUngrabFocusIn( - Display* display, - int deviceid, - Window grab_window, -+ int num_modifiers, -+ XIGrabModifiers *modifiers -+); -+ -+extern Status XIUngrabTouchBegin( -+ Display* display, -+ int deviceid, -+ Window grab_window, - int num_modifiers, - XIGrabModifiers *modifiers - ); ---- a/src/XExtInt.c -+++ b/src/XExtInt.c -@@ -146,6 +146,9 @@ static int - wireToEnterLeave(xXIEnterEvent *in, XGenericEventCookie *cookie); - static int - wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie); -+static int -+wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in, -+ XGenericEventCookie *cookie); - - static /* const */ XEvent emptyevent; - -@@ -268,7 +271,8 @@ static XExtensionVersion versions[] = { - XI_Add_DevicePresenceNotify_Minor}, - {XI_Present, XI_Add_DeviceProperties_Major, - XI_Add_DeviceProperties_Minor}, --{XI_Present, XI_2_Major, XI_2_Minor} -+{XI_Present, XI_2_Major, XI_2_Minor}, -+{XI_Present, XI_2_Major, XI_2_1_Minor} - }; - - /*********************************************************************** -@@ -924,6 +928,10 @@ XInputWireToCookie( - case XI_ButtonRelease: - case XI_KeyPress: - case XI_KeyRelease: -+ case XI_TouchBegin: -+ case XI_TouchUpdate: -+ case XI_TouchUpdateUnowned: -+ case XI_TouchEnd: - *cookie = *(XGenericEventCookie*)save; - if (!wireToDeviceEvent((xXIDeviceEvent*)event, cookie)) - { -@@ -950,7 +958,16 @@ XInputWireToCookie( - break; - } - return ENQUEUE_EVENT; -- -+ case XI_TouchOwnership: -+ *cookie = *(XGenericEventCookie*)save; -+ if (!wireToTouchOwnershipEvent((xXITouchOwnershipEvent*)event, -+ cookie)) -+ { -+ printf("XInputWireToCookie: CONVERSION FAILURE! evtype=%d\n", -+ ge->evtype); -+ break; -+ } -+ return ENQUEUE_EVENT; - case XI_RawKeyPress: - case XI_RawKeyRelease: - case XI_RawButtonPress: -@@ -1037,6 +1054,12 @@ sizeDeviceClassType(int type, int num_el - case XIValuatorClass: - l = sizeof(XIValuatorClassInfo); - break; -+ case XITouchClass: -+ l = sizeof(XITouchClassInfo); -+ break; -+ case XITouchValuatorClass: -+ l = sizeof(XITouchValuatorClassInfo); -+ break; - default: - printf("sizeDeviceClassType: unknown type %d\n", type); - break; -@@ -1239,6 +1262,22 @@ copyPropertyEvent(XGenericEventCookie *c - } - - static Bool -+copyTouchOwnershipEvent(XGenericEventCookie *cookie_in, -+ XGenericEventCookie *cookie_out) -+{ -+ XITouchOwnershipEvent *in, *out; -+ -+ in = cookie_in->data; -+ -+ out = cookie_out->data = malloc(sizeof(XITouchOwnershipEvent)); -+ if (!out) -+ return False; -+ -+ *out = *in; -+ return True; -+} -+ -+static Bool - copyRawEvent(XGenericEventCookie *cookie_in, - XGenericEventCookie *cookie_out) - { -@@ -1297,8 +1336,15 @@ XInputCopyCookie(Display *dpy, XGenericE - case XI_ButtonRelease: - case XI_KeyPress: - case XI_KeyRelease: -+ case XI_TouchBegin: -+ case XI_TouchUpdate: -+ case XI_TouchUpdateUnowned: -+ case XI_TouchEnd: - ret = copyDeviceEvent(in, out); - break; -+ case XI_TouchOwnership: -+ ret = copyTouchOwnershipEvent(in, out); -+ break; - case XI_DeviceChanged: - ret = copyDeviceChangedEvent(in, out); - break; -@@ -1427,6 +1473,12 @@ size_classes(xXIAnyInfo* from, int nclas - case XIValuatorClass: - l = sizeDeviceClassType(XIValuatorClass, 0); - break; -+ case XITouchClass: -+ l = sizeDeviceClassType(XITouchClass, 0); -+ break; -+ case XITouchValuatorClass: -+ l = sizeDeviceClassType(XITouchValuatorClass, 0); -+ break; - } - - len += l; -@@ -1527,6 +1579,35 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf - - } - break; -+ case XITouchClass: -+ { -+ XITouchClassInfo *cls_lib; -+ xXITouchInfo *cls_wire; -+ -+ cls_wire = (xXITouchInfo*)any_wire; -+ cls_lib = next_block(&ptr_lib, sizeof(XITouchClassInfo)); -+ -+ cls_lib->mode = cls_wire->mode; -+ cls_lib->num_touches = cls_wire->num_touches; -+ } -+ break; -+ case XITouchValuatorClass: -+ { -+ XITouchValuatorClassInfo *cls_lib; -+ xXITouchValuatorInfo *cls_wire; -+ -+ cls_wire = (xXITouchValuatorInfo*)any_wire; -+ cls_lib = next_block(&ptr_lib, -+ sizeof(XITouchValuatorClassInfo)); -+ -+ cls_lib->number = cls_wire->number; -+ cls_lib->label = cls_wire->label; -+ /* FIXME: fractional parts */ -+ cls_lib->min = cls_wire->min.integral; -+ cls_lib->max = cls_wire->max.integral; -+ cls_lib->resolution = cls_wire->resolution; -+ } -+ break; - } - len += any_wire->length * 4; - ptr_wire += any_wire->length * 4; -@@ -1697,6 +1778,28 @@ wireToEnterLeave(xXIEnterEvent *in, XGen - - return 1; - } -+ -+static int -+wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in, -+ XGenericEventCookie *cookie) -+{ -+ XITouchOwnershipEvent *out = malloc(sizeof(XITouchOwnershipEvent)); -+ -+ cookie->data = out; -+ -+ out->type = in->type; -+ out->display = cookie->display; -+ 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->touchid = in->touchid; -+ out->flags = in->flags; -+ -+ return 1; -+} - - static int - wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie) ---- a/src/XIAllowEvents.c -+++ b/src/XIAllowEvents.c -@@ -51,3 +51,27 @@ XIAllowEvents(Display *dpy, int deviceid - SyncHandle(); - return Success; - } -+ -+Status -+XIAllowTouchEvents(Display *dpy, int deviceid, unsigned long touchid, -+ int event_mode) -+{ -+ xXIAllowTouchEventsReq *req; -+ -+ XExtDisplayInfo *extinfo = XInput_find_display(dpy); -+ -+ LockDisplay(dpy); -+ if (_XiCheckExtInit(dpy, XInput_2_1, extinfo) == -1) -+ return (NoSuchExtension); -+ -+ GetReq(XIAllowTouchEvents, req); -+ req->reqType = extinfo->codes->major_opcode; -+ req->ReqType = X_XIAllowTouchEvents; -+ req->deviceid = deviceid; -+ req->touchid = touchid; -+ req->mode = event_mode; -+ -+ UnlockDisplay(dpy); -+ SyncHandle(); -+ return Success; -+} ---- a/src/XIPassiveGrab.c -+++ b/src/XIPassiveGrab.c -@@ -145,6 +145,25 @@ XIGrabFocusIn(Display *dpy, int deviceid - modifiers_inout); - } - -+int -+XIGrabTouchBegin(Display *dpy, int deviceid, Window grab_window, -+ Bool owner_events, XIEventMask *mask, -+ int num_modifiers, XIGrabModifiers *modifiers_inout) -+{ -+ XExtDisplayInfo *extinfo = XInput_find_display(dpy); -+ -+ LockDisplay(dpy); -+ if (_XiCheckExtInit(dpy, XInput_2_1, extinfo) == -1) -+ return -1; -+ -+ UnlockDisplay(dpy); -+ -+ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeTouchBegin, 0, -+ grab_window, None, GrabModeAsync, GrabModeAsync, -+ owner_events, mask, num_modifiers, -+ modifiers_inout); -+} -+ - static int - _XIPassiveUngrabDevice(Display* dpy, int deviceid, int grabtype, int detail, - Window grab_window, int num_modifiers, XIGrabModifiers *modifiers) -@@ -208,3 +227,19 @@ XIUngrabFocusIn(Display* display, int de - return _XIPassiveUngrabDevice(display, deviceid, XIGrabtypeFocusIn, 0, - grab_window, num_modifiers, modifiers); - } -+ -+int -+XIUngrabTouchBegin(Display* display, int deviceid, Window grab_window, -+ int num_modifiers, XIGrabModifiers *modifiers) -+{ -+ XExtDisplayInfo *extinfo = XInput_find_display(display); -+ -+ LockDisplay(display); -+ if (_XiCheckExtInit(display, XInput_2_1, extinfo) == -1) -+ return -1; -+ -+ UnlockDisplay(display); -+ -+ return _XIPassiveUngrabDevice(display, deviceid, XIGrabtypeTouchBegin, 0, -+ grab_window, num_modifiers, modifiers); -+} diff --git a/debian/patches/series b/debian/patches/series index 8094f05..9bf2d52 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ # placeholder. -1_xi2.1.patch \ No newline at end of file commit e66ba1397d842534bff77742b8a1de9873f422b3 Author: Chase Douglas <chase.doug...@canonical.com> Date: Wed Dec 21 16:31:21 2011 -0800 Bump changelogs. diff --git a/ChangeLog b/ChangeLog index 47c40db..08ddaec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,134 @@ +commit ae0187c8708d2378373889827117911086581fdd +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Dec 22 09:42:43 2011 +1000 + + libXi 1.5.99.2 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 47f3d887a7731f4ab68a69ed31dbe7acf6d13270 +Merge: 82a6312 e73e2fe +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Dec 21 15:40:37 2011 +1000 + + Merge branch 'multitouch' + + Conflicts: + configure.ac + +commit 82a631263ef4e6f46c1f33748089db8bf603b095 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Dec 21 15:33:17 2011 +1000 + + libXi 1.5.0 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit e73e2fe95dab3e0048b24d16327adbe54326ff3f +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Sep 14 22:33:57 2011 -0700 + + Implement support for XI 2.2 + + Adds support for the new TouchClass for multitouch-capable servers/devices. + + New events: + XITouchOwnershipEvent + + New event types handled: + XITouchBegin, XITouchUpdate, XITouchEnd + XIRawTouchBegin, XIRawTouchUpdate, XIRawTouchEnd + + New functions: + XIGrabTouchBegin ... passive grabs on touches + XIUngrabTouchBegin + XIAllowTouchEvents ... Allow/reject touch event sequences + + New XIQueryDevice classes: + XITouchClassInfo + + Requires libX11 1.5 for GetReqSized + + Co-authored by: Chase Douglas <chase.doug...@canonical.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 7888d14a499062a1c3b333f31f1330cecf1e97c1 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Tue Oct 25 13:30:47 2011 +1000 + + Bump to 1.5.99.1 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit fa6505f0a86b296e8f12f0fb8f472ef17b501fdb +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Mon Dec 19 09:36:34 2011 +1000 + + man: minor formatting fix in XIGrabButton + +commit 49408e39e4b084fe362e9ee197bfa0aa1c55384d +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Nov 11 15:32:21 2011 +1000 + + Include config.h from source files + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Gaetan Nadon <mems...@videotron.ca> + Reviewed-by: Jeremy Huddleston <jerem...@apple.com> + +commit ba83a1e58592e41f207524f106ba26dd71fe4171 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Oct 26 08:55:35 2011 +1000 + + Stop unnecessary calls to size_classes + + Xmalloc is a macro evaluating its argument twice. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Jeremy Huddleston <jerem...@apple.com> + +commit 6d6ae8fc8b9620bf864ac7dff8d818573eee3e4f +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Wed Oct 26 08:54:53 2011 +1000 + + Fix duplicate sizeof in copy_classes + + sizeof(bla * sizeof()) is'nt right. + + Plus add some () to the next_block call too to emphasise that *nclasses is + the multiplicator. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Jeremy Huddleston <jerem...@apple.com> + +commit 323730f7fa70190d2ea00e62c6964fee524ca430 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Oct 27 10:27:49 2011 +1000 + + man: passive grabs return the number of failed modifier combinations + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 5189df57e18c79327848fb117a8ede59868c8fdb +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Oct 21 08:49:31 2011 +1000 + + man: XIGrabButton returns error codes, not status codes + + Reword slightly that the returned value is the error code for this + particular grab. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 05aaf65b3b6b7dc7268137ce4ee516f08eefb62f +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Oct 21 08:07:45 2011 +1000 + + man: fix #include for XIGrabButton + + Reported-by: Matthias Clasen <mcla...@redhat.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + commit c25debae73be50b9a77454ed4d72ffeaab726846 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Oct 10 10:24:38 2011 +1000 diff --git a/debian/changelog b/debian/changelog index 58f1c00..7d1143d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libxi (2:1.5.99.2-0ubuntu1) UNRELEASED; urgency=low + + * New upstream release candidate: + - Really with multitouch support. + + -- Chase Douglas <chase.doug...@ubuntu.com> Wed, 21 Dec 2011 16:30:21 -0800 + libxi (2:1.4.99.1-1) experimental; urgency=low * New upstream release candidate: commit ae0187c8708d2378373889827117911086581fdd Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Dec 22 09:42:43 2011 +1000 libXi 1.5.99.2 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 0a7bdfa..79ba97e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.5.99.1], +AC_INIT([libXi], [1.5.99.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) commit 82a631263ef4e6f46c1f33748089db8bf603b095 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed Dec 21 15:33:17 2011 +1000 libXi 1.5.0 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 10d2e5d..46329b3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.4.99.1], +AC_INIT([libXi], [1.5.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) commit e73e2fe95dab3e0048b24d16327adbe54326ff3f Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed Sep 14 22:33:57 2011 -0700 Implement support for XI 2.2 Adds support for the new TouchClass for multitouch-capable servers/devices. New events: XITouchOwnershipEvent New event types handled: XITouchBegin, XITouchUpdate, XITouchEnd XIRawTouchBegin, XIRawTouchUpdate, XIRawTouchEnd New functions: XIGrabTouchBegin ... passive grabs on touches XIUngrabTouchBegin XIAllowTouchEvents ... Allow/reject touch event sequences New XIQueryDevice classes: XITouchClassInfo Requires libX11 1.5 for GetReqSized Co-authored by: Chase Douglas <chase.doug...@canonical.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index c6565a8..0a7bdfa 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 depedencies -PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.2.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.0.99.1]) +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.3]) # 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 910b25f..26de695 100644 --- a/include/X11/extensions/XInput2.h +++ b/include/X11/extensions/XInput2.h @@ -146,6 +146,14 @@ typedef struct typedef struct { + int type; + int sourceid; + int mode; + int num_touches; +} XITouchClassInfo; + +typedef struct +{ int deviceid; char *name; int use; @@ -303,6 +311,23 @@ typedef struct { int what; } XIPropertyEvent; +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; + unsigned int touchid; + Window root; + Window event; + Window child; + int flags; +} XITouchOwnershipEvent; + _XFUNCPROTOBEGIN extern Bool XIQueryPointer( @@ -426,6 +451,14 @@ extern Status XIAllowEvents( Time time ); +extern Status XIAllowTouchEvents( + Display* display, + int deviceid, + unsigned int touchid, + Window grab_window, + int event_mode +); + extern int XIGrabButton( Display* display, int deviceid, @@ -477,6 +510,17 @@ extern int XIGrabFocusIn( int num_modifiers, XIGrabModifiers *modifiers_inout ); + +extern int XIGrabTouchBegin( + Display* display, + int deviceid, + Window grab_window, + int owner_events, + XIEventMask *mask, + int num_modifiers, + XIGrabModifiers *modifiers_inout +); + extern Status XIUngrabButton( Display* display, int deviceid, @@ -511,6 +555,13 @@ extern Status XIUngrabFocusIn( XIGrabModifiers *modifiers ); +extern Status XIUngrabTouchBegin( + Display* display, + int deviceid, + Window grab_window, + int num_modifiers, + XIGrabModifiers *modifiers +); extern Atom *XIListProperties( Display* display, diff --git a/man/XIGrabButton.txt b/man/XIGrabButton.txt index 45ac25e..a046ac7 100644 --- a/man/XIGrabButton.txt +++ b/man/XIGrabButton.txt @@ -49,6 +49,20 @@ SYNOPSIS int num_modifiers, XIGrabModifiers *modifiers); + int XIGrabTouchBegin( Display *display, + int deviceid, + Window grab_window, + Bool owner_events, + XIEventMask *mask, + int num_modifiers, + XIGrabModifiers *modifiers_inout); + + int XIUngrabTouchBegin( Display *display, + int deviceid, + Window grab_window, + int num_modifiers, + XIGrabModifiers *modifiers); + display Specifies the connection to the X server. @@ -101,8 +115,8 @@ SYNOPSIS DESCRIPTION ----------- - XIGrabButton and XIGrabKeycode establishes a passive grab. The - modifier device for a button grab is the paired master device + XIGrabButton, XIGrabKeycode and XIGrabTouchBegin establish a passive + grab. The modifier device for a button grab is the paired master device if deviceid specifies a master pointer. Otherwise, the modifier device is the device specified with deviceid. In the future, the device is actively grabbed (as for XIGrabDevice, the @@ -110,9 +124,9 @@ DESCRIPTION was pressed and the XI_ButtonPress or XI_KeyPress event is reported if all of the following conditions are true: * The device is not grabbed, and the specified button or - keycode is logically pressed when the specified modifier - keys are logically down on the modifier device and no other - buttons or modifier keys are logically down. + keycode is logically pressed or a touch event occurs when the + specified modifier keys are logically down on the modifier device + and no other buttons or modifier keys are logically down. * Either the grab window is an ancestor of (or is) the focus window, OR the grab window is a descendent of the focus window and contains the device. @@ -156,35 +170,36 @@ DESCRIPTION combination. XIGrabButton and XIGrabKeycode have no effect on an active grab. - On success, XIGrabButton and XIGrabKeycode return 0; + On success, XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return 0; If one or more modifier combinations could not be grabbed, - XIGrabButton and XIGrabKeycode return the number of failed - combinations and modifiers_inout contains the failed combinations + XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of + failed combinations and modifiers_inout contains the failed combinations and their respective error codes. - XIGrabButton and XIGrabKeycode can generate BadClass, BadDevice, - BadMatch, BadValue, and BadWindow errors. -- 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/e1rdbw0-0007ze...@vasks.debian.org