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

Reply via email to