libxi: Changes to 'upstream-experimental'
configure.ac | 11 ++++-------
include/X11/extensions/XInput.h | 5 +++++
man/Makefile.am | 2 +-
man/XQueryDeviceState.txt | 6 +++---
src/XExtInt.c | 14 +++++++++-----
src/XIGrabDevice.c | 4 ++--
src/XQueryDv.c | 3 ++-
7 files changed, 26 insertions(+), 19 deletions(-)
New commits:
commit 63621888d6e36a2f9e41e81c14728d70beeff5ee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Oct 2 12:09:17 2009 +1000
libXi 1.3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/configure.ac b/configure.ac
index f1d8818..377dfe0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(libXi, 1.2.99.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
+AC_INIT(libXi, 1.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
commit 9dc825a3dede81d2425770662daefe7e19644d6d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Oct 2 12:08:30 2009 +1000
Require macros 1.3 for XORG_DEFAULT_OPTIONS
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/configure.ac b/configure.ac
index 2470d34..f1d8818 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,15 +7,15 @@ AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
# Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG
-m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.2)
+m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
AM_CONFIG_HEADER(src/config.h)
# Check for progs
AC_PROG_CC
AC_PROG_LIBTOOL
AC_PROG_SED
-XORG_CWARNFLAGS
+XORG_DEFAULT_OPTIONS
# Checks for pkg-config packages
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])
@@ -35,9 +35,6 @@ if test "x$XMLTO" = "x" || test "x$ASCIIDOC" = "x"; then
fi
XORG_CHECK_MALLOC_ZERO
-XORG_MANPAGE_SECTIONS
-XORG_RELEASE_VERSION
-XORG_CHANGELOG
AC_OUTPUT([Makefile
src/Makefile
commit 3530845c70b0d7f9f853b29337c9397a3a599e52
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Sep 29 14:15:06 2009 +0200
Don't export sizeDeviceClassType, size_classes and copy_classes
Signed-off-by: Julien Cristau <jcristau@debian.org>
diff --git a/src/XExtInt.c b/src/XExtInt.c
index 7f7e9cc..e87ead8 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -102,8 +102,6 @@ extern int _XiGetDevicePresenceNotifyEvent(
int copy_classes(XIDeviceInfo *to, xXIAnyInfo* from, int nclasses);
int size_classes(xXIAnyInfo* from, int nclasses);
-int sizeDeviceClassType(int type, int num_elements);
-
static XExtensionInfo *xinput_info;
static /* const */ char *xinput_extension_name = INAME;
@@ -961,7 +959,7 @@ sizeDeviceEvent(int buttons_len, int valuators_len,
*
* Also used from copy_classes in XIQueryDevice.c
*/
-int
+static int
sizeDeviceClassType(int type, int num_elements)
{
int l = 0;
@@ -1342,7 +1340,7 @@ wireToDeviceEvent(xXIDeviceEvent *in, XGenericEventCookie* cookie)
return 1;
}
-int
+_X_HIDDEN int
size_classes(xXIAnyInfo* from, int nclasses)
{
int len, i;
@@ -1383,7 +1381,7 @@ size_classes(xXIAnyInfo* from, int nclasses)
* |________|___________^
* |______________________^
*/
-int
+_X_HIDDEN int
copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses)
{
XIAnyClassInfo *any_lib;
commit 801d77d035a10250dab728c046a6e9b2775e6dfb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Sep 24 14:14:48 2009 +1000
XQueryDeviceState: correct length of XValuatorState
The length is suppposed to be the complete class size, not just the struct
size. Since XValuatorState is followed by multiple valuator values the
size of the class is variable and dependent on the number of valuators.
The server assembles the valuator state last. This bug is unlikely to affect
clients as they should never go past the last class anyway.
Tested-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/src/XQueryDv.c b/src/XQueryDv.c
index 5996734..d9495c2 100644
--- a/src/XQueryDv.c
+++ b/src/XQueryDv.c
@@ -160,7 +160,8 @@ XQueryDeviceState(
CARD32 *valuators = (CARD32 *) (v + 1);
V->class = v->class;
- V->length = sizeof(XValuatorState);
+ V->length = sizeof(XValuatorState) +
+ v->num_valuators * sizeof(int);
V->num_valuators = v->num_valuators;
V->mode = v->mode;
Any = (XInputClass *) (V + 1);
commit bff36ef5797d7da11972ee22ea224e207af77455
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Sep 24 13:10:26 2009 +1000
man: correct XQueryDeviceState return value.
And one indentation fix in the same man page.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XQueryDeviceState.txt b/man/XQueryDeviceState.txt
index cd9f982..41cdd2c 100644
--- a/man/XQueryDeviceState.txt
+++ b/man/XQueryDeviceState.txt
@@ -12,8 +12,8 @@ SYNOPSIS
#include <X11/extensions/XInput.h>
- int XQueryDeviceState( Display *display,
- XDevice *device);
+ XDeviceState* XQueryDeviceState( Display *display,
+ XDevice *device);
display
Specifies the connection to the X server.
@@ -34,7 +34,7 @@ DESCRIPTION
XQueryDeviceState can generate a BadDevice error.
-Structures
+ Structures:
The XDeviceState structure contains:
commit 9c5ba6ff3fcff30507f285f2e67afbdb296a2318
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Sep 14 16:34:18 2009 +1000
Declare _xibad* functions before the Bad* macros.
Reported-by: Christian Beier
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/include/X11/extensions/XInput.h b/include/X11/extensions/XInput.h
index 561465c..b17f388 100644
--- a/include/X11/extensions/XInput.h
+++ b/include/X11/extensions/XInput.h
@@ -159,6 +159,11 @@ SOFTWARE.
extern "C" {
#endif
extern int _XiGetDevicePresenceNotifyEvent(Display *);
+ 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);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
commit 369600cf37cd884793c4802a56c8355bc1812dc6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Sep 7 12:22:06 2009 +1000
mask_len in XIGrabDevice is in 4-byte units (#23708)
X.Org Bug 23708 <http://bugs.freedesktop.org/show_bug.cgi?id=23708>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/src/XIGrabDevice.c b/src/XIGrabDevice.c
index 66e359b..985d3f1 100644
--- a/src/XIGrabDevice.c
+++ b/src/XIGrabDevice.c
@@ -55,13 +55,13 @@ XIGrabDevice(Display* dpy, int deviceid, Window grab_window, Time time,
req->grab_mode = grab_mode;
req->paired_device_mode = paired_device_mode;
req->owner_events = owner_events;
- req->mask_len = mask->mask_len;
+ req->mask_len = (mask->mask_len + 3)/4;
req->cursor = cursor;
/* masks.mask_len is in bytes, but we need 4-byte units on the wire,
* and they need to be padded with 0 */
- len = (mask->mask_len + 3) / 4;
+ len = req->mask_len * 4;
buff = calloc(1, len);
memcpy(buff, mask->mask, mask->mask_len);
commit fa09375a69a02cd789c70d60970a669700eaeb20
Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
Date: Sat Sep 5 20:39:47 2009 +0200
libXi: Man page files end with LIB_MAN_SUFFIX not LIB_MAN_DIR_SUFFIX.
Using LIB_MAN_DIR_SUFFIX as man page files suffix is invalid since
there can be files ending with eg. 5x while being in man5 dir
(share/man/man5/man.5x) as required by FHS 2.3.
Man page files and with LI
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/Makefile.am b/man/Makefile.am
index 1501fd6..221b677 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -115,7 +115,7 @@ libman_ref = \
libman_pre = $(libman_txt:.txt=.man) $(libman_ref)
if HAVE_DOCTOOLS
-nodist_libman_DATA = $(libman_pre:.man=.$(LIB_MAN_DIR_SUFFIX))
+nodist_libman_DATA = $(libman_pre:.man=.$(LIB_MAN_SUFFIX))
endif
EXTRA_DIST = $(libman_txt) $(libman_pre)
commit 693d9a43f16d4ffd085099b532a10467aa095c17
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Sep 1 16:42:38 2009 +1000
Initialize send_event for cookie events. (#23609)
X.Org Bug 23609 <http://bugs.freedesktop.org/show_bug.cgi?id=23609>
diff --git a/src/XExtInt.c b/src/XExtInt.c
index 26cc6e4..7f7e9cc 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -1292,6 +1292,7 @@ wireToDeviceEvent(xXIDeviceEvent *in, XGenericEventCookie* cookie)
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;
@@ -1489,6 +1490,7 @@ wireToDeviceChangedEvent(xXIDeviceChangedEvent *in, XGenericEventCookie *cookie)
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;
@@ -1518,6 +1520,7 @@ wireToHierarchyChangedEvent(xXIHierarchyEvent *in, XGenericEventCookie *cookie)
out->type = in->type;
out->extension = in->extension;
out->evtype = in->evtype;
+ out->send_event = ((in->type & 0x80) != 0);
out->time = in->time;
out->flags = in->flags;
out->num_info = in->num_info;
@@ -1558,6 +1561,7 @@ wireToRawEvent(xXIRawEvent *in, XGenericEventCookie *cookie)
out->type = in->type;
out->extension = in->extension;
out->evtype = in->evtype;
+ out->send_event = ((in->type & 0x80) != 0);
out->time = in->time;
out->detail = in->detail;
out->deviceid = in->deviceid;
@@ -1600,6 +1604,7 @@ wireToEnterLeave(xXIEnterEvent *in, XGenericEventCookie *cookie)
out->type = in->type;
out->extension = in->extension;
out->evtype = in->evtype;
+ out->send_event = ((in->type & 0x80) != 0);
out->time = in->time;
out->detail = in->detail;
out->deviceid = in->deviceid;
@@ -1640,6 +1645,7 @@ wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie)
out->type = in->type;
out->extension = in->extension;
out->evtype = in->evtype;
+ out->send_event = ((in->type & 0x80) != 0);
out->time = in->time;
out->property = in->property;
out->what = in->what;
Reply to: