libxi: Changes to 'ubuntu'
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.douglas@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.douglas@ubuntu.com> Wed, 21 Dec 2011 19:22:11 -0800
+ -- Chase Douglas <chase.douglas@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.douglas@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.douglas@ubuntu.com> Wed, 21 Dec 2011 16:33:36 -0800
+ -- Chase Douglas <chase.douglas@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.douglas@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.douglas@ubuntu.com> Wed, 21 Dec 2011 16:31:58 -0800
+ -- Chase Douglas <chase.douglas@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.douglas@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.douglas@ubuntu.com> Wed, 21 Dec 2011 16:30:21 -0800
+ -- Chase Douglas <chase.douglas@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.douglas@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.hutterer@who-t.net>
+Date: Thu Dec 22 09:42:43 2011 +1000
+
+ libXi 1.5.99.2
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 47f3d887a7731f4ab68a69ed31dbe7acf6d13270
+Merge: 82a6312 e73e2fe
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Dec 21 15:40:37 2011 +1000
+
+ Merge branch 'multitouch'
+
+ Conflicts:
+ configure.ac
+
+commit 82a631263ef4e6f46c1f33748089db8bf603b095
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Dec 21 15:33:17 2011 +1000
+
+ libXi 1.5.0
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit e73e2fe95dab3e0048b24d16327adbe54326ff3f
+Author: Peter Hutterer <peter.hutterer@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.douglas@canonical.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 7888d14a499062a1c3b333f31f1330cecf1e97c1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Oct 25 13:30:47 2011 +1000
+
+ Bump to 1.5.99.1
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit fa6505f0a86b296e8f12f0fb8f472ef17b501fdb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Dec 19 09:36:34 2011 +1000
+
+ man: minor formatting fix in XIGrabButton
+
+commit 49408e39e4b084fe362e9ee197bfa0aa1c55384d
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Nov 11 15:32:21 2011 +1000
+
+ Include config.h from source files
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit ba83a1e58592e41f207524f106ba26dd71fe4171
+Author: Peter Hutterer <peter.hutterer@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.hutterer@who-t.net>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 6d6ae8fc8b9620bf864ac7dff8d818573eee3e4f
+Author: Peter Hutterer <peter.hutterer@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.hutterer@who-t.net>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 323730f7fa70190d2ea00e62c6964fee524ca430
+Author: Peter Hutterer <peter.hutterer@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.hutterer@who-t.net>
+
+commit 5189df57e18c79327848fb117a8ede59868c8fdb
+Author: Peter Hutterer <peter.hutterer@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.hutterer@who-t.net>
+
+commit 05aaf65b3b6b7dc7268137ce4ee516f08eefb62f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Oct 21 08:07:45 2011 +1000
+
+ man: fix #include for XIGrabButton
+
+ Reported-by: Matthias Clasen <mclasen@redhat.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
commit c25debae73be50b9a77454ed4d72ffeaab726846
Author: Peter Hutterer <peter.hutterer@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.douglas@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.hutterer@who-t.net>
Date: Thu Dec 22 09:42:43 2011 +1000
libXi 1.5.99.2
Signed-off-by: Peter Hutterer <peter.hutterer@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.hutterer@who-t.net>
Date: Wed Dec 21 15:33:17 2011 +1000
libXi 1.5.0
Signed-off-by: Peter Hutterer <peter.hutterer@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.hutterer@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.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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.
Reply to: