libxi: Changes to 'upstream-experimental'
Rebased ref, commits from common ancestor:
commit eb9a2d63487641faa97d88cef3fa1c892a8f342f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 25 11:03:04 2009 +1000
Bump to 1.2.99.4
diff --git a/configure.ac b/configure.ac
index e3aa05a..2470d34 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.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
+AC_INIT(libXi, 1.2.99.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
commit 2ce629c30745fc4027d2a95745bf21e8d8c7b893
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 25 09:55:23 2009 +1000
Remove the asciidoc warning from configure.
This warning was put in when the released version of asciidoc required an
additional patch to build libXi.
The release of asciidoc 8.4.5 included this patch thus we don't need this
explicit warning anymore.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/configure.ac b/configure.ac
index 5459a3b..e3aa05a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,14 +32,6 @@ AC_PATH_PROG([ASCIIDOC], [asciidoc])
AM_CONDITIONAL([HAVE_DOCTOOLS], [test "x$XMLTO" != "x" && test "x$ASCIIDOC" != "x"])
if test "x$XMLTO" = "x" || test "x$ASCIIDOC" = "x"; then
AC_MSG_WARN([xmlto or asciidoc not found - cannot create man pages without it])
-else
- AC_MSG_WARN([
- *********************************************************
- xmlto and asciidoc found. I will be building man
- pages. Your asciidoc may not support multiple docbook
- targets and building the man pages may fail. See
- http://hg.sharesource.org/asciidoc/raw-rev/fc5a653a30a3
- *********************************************************])
fi
XORG_CHECK_MALLOC_ZERO
commit 17bbc8c30fb34c7130b71e5cc0b0e17093271266
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Aug 24 15:54:09 2009 +1000
man: fix XIQueryPointer parameter ordering.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XIQueryPointer.txt b/man/XIQueryPointer.txt
index 127f092..445f8b5 100644
--- a/man/XIQueryPointer.txt
+++ b/man/XIQueryPointer.txt
@@ -20,9 +20,9 @@ SYNOPSIS
double *root_y_return,
double *win_x_return,
double *win_y_return,
+ XIButtonState *buttons_return,
XIModifierState *modifiers_return,
- XIGroupState *group_return,
- XIButtonState *buttons_return);
+ XIGroupState *group_return);
buttons_return
Returns the current button state.
commit 207a7f3d5bd559ffb67de2910795d7cd6508ce09
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Aug 24 15:31:55 2009 +1000
Update XIWarpPointer to take doubles (inputproto >= 1.9.99.902)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/configure.ac b/configure.ac
index 700b922..5459a3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@ AC_PROG_SED
XORG_CWARNFLAGS
# 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.15])
+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])
XI_CFLAGS="$CWARNFLAGS $XI_CFLAGS"
AC_SUBST(XI_CFLAGS)
AC_SUBST(XI_LIBS)
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index 60e4bb1..e6c7b30 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
@@ -314,12 +314,12 @@ extern Bool XIWarpPointer(
int deviceid,
Window src_win,
Window dst_win,
- int src_x,
- int src_y,
+ double src_x,
+ double src_y,
unsigned int src_width,
unsigned int src_height,
- int dst_x,
- int dst_y
+ double dst_x,
+ double dst_y
);
extern Status XIDefineCursor(
diff --git a/man/XIWarpPointer.txt b/man/XIWarpPointer.txt
index 7dfaffa..fcf9e69 100644
--- a/man/XIWarpPointer.txt
+++ b/man/XIWarpPointer.txt
@@ -15,12 +15,12 @@ SYNOPSIS
int deviceid,
Window src_w,
Window dest_w,
- int src_x,
- int src_y,
+ double src_x,
+ double src_y,
int src_width,
int src_height,
- int dest_x,
- int dest_y);
+ double dest_x,
+ double dest_y);
dest_w
Specifies the destination window or None.
diff --git a/src/XIWarpPointer.c b/src/XIWarpPointer.c
index 60188db..038a0d3 100644
--- a/src/XIWarpPointer.c
+++ b/src/XIWarpPointer.c
@@ -42,12 +42,12 @@ XIWarpPointer(Display *dpy,
int deviceid,
Window src_win,
Window dst_win,
- int src_x,
- int src_y,
+ double src_x,
+ double src_y,
unsigned int src_width,
unsigned int src_height,
- int dst_x,
- int dst_y)
+ double dst_x,
+ double dst_y)
{
xXIWarpPointerReq *req;
@@ -63,12 +63,12 @@ XIWarpPointer(Display *dpy,
req->deviceid = deviceid;
req->src_win = src_win;
req->dst_win = dst_win;
- req->src_x = src_x;
- req->src_y = src_y;
+ req->src_x = (int)(src_x * 65536.0);
+ req->src_y = (int)(src_y * 65536.0);
req->src_width = src_width;
req->src_height = src_height;
- req->dst_x = dst_x;
- req->dst_y = dst_y;
+ req->dst_x = (int)(dst_x * 65536.0);
+ req->dst_y = (int)(dst_y * 65536.0);
UnlockDisplay(dpy);
commit a8a8b40fa447c85eb5d1d61ef416d3cf198c72c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 18 15:21:56 2009 +1000
man: XIDefineCursor can generate BadDevice errors.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XIDefineCursor.txt b/man/XIDefineCursor.txt
index 79894be..992aeaa 100644
--- a/man/XIDefineCursor.txt
+++ b/man/XIDefineCursor.txt
@@ -39,7 +39,10 @@ DESCRIPTION
is in the window. If the cursor is None, it is equivalent to
XIUndefineCursor.
- XIDefineCursor can generate BadCursor and BadWindow.
+ The deviceid must be a master pointer device or a BadDevice error is
+ returned.
+
+ XIDefineCursor can generate BadDevice, BadCursor and BadWindow.
The XIUndefineCursor function undoes the effect of a previous
XIDefineCursor for this window. When the pointer is in the
commit 326a0c01ef6e3c1f0577e185c23eec80ecf59192
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 18 15:08:50 2009 +1000
man: typo fixes in XIUndefineCursor, add BadCursor note.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XIDefineCursor.txt b/man/XIDefineCursor.txt
index 2edbc5a..79894be 100644
--- a/man/XIDefineCursor.txt
+++ b/man/XIDefineCursor.txt
@@ -37,7 +37,7 @@ DESCRIPTION
If a cursor is set, it will be used when the device's pointer
is in the window. If the cursor is None, it is equivalent to
- XUndefineDefineCursor.
+ XIUndefineCursor.
XIDefineCursor can generate BadCursor and BadWindow.
@@ -52,12 +52,16 @@ DESCRIPTION
XDefineCursor and XUndefineCursor but specify the device
explicitly.
- XUndefineDevicePointer can generate a BadDevice and a BadWindow
+ XIUndefineCursor can generate a BadDevice and a BadWindow
error.
DIAGNOSTICS
-----------
+ BadCursor
+ A value for a cursor argument does not name a defined
+ cursor.
+
BadDevice
An invalid device was specified. The device does not
exist or is not a pointer device.
commit 42a718457d183aab42778fbb127fafbae6b3e6d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 5 16:00:44 2009 +1000
man: point out temporary detachment of slave devices.
Affects XIGrabDevice, XIGrabButton/Key and XIGrabEnter/GrabFocusIN
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XIGrabButton.txt b/man/XIGrabButton.txt
index d9e3297..70a3505 100644
--- a/man/XIGrabButton.txt
+++ b/man/XIGrabButton.txt
@@ -125,6 +125,13 @@ DESCRIPTION
released (independent of the logical state of the modifier
keys).
+ If the device is an attached slave device, the device is
+ automatically detached from the master device when the grab
+ activates and reattached to the same master device when the
+ grab deactivates. If the master device is removed while the
+ device is floating as a result of a grab, the device remains
+ floating once the grab deactivates.
+
Note that the logical state of a device (as seen by client
applications) may lag the physical state if device event
processing is frozen.
diff --git a/man/XIGrabDevice.txt b/man/XIGrabDevice.txt
index 6194ed9..bd749b7 100644
--- a/man/XIGrabDevice.txt
+++ b/man/XIGrabDevice.txt
@@ -58,8 +58,13 @@ DESCRIPTION
XIGrabDevice actively grabs control of the device. Further
device events are reported only to the grabbing client.
XIGrabDevice overrides any active device grab by this client.
- if deviceid is an attached slave device, the device is set
- floating until the client calls XIUngrabDevice.
+
+ If the device is an attached slave device, the device is
+ automatically detached from the master device and reattached to
+ the same master device when client ungrabs the device. If the
+ master device is removed while the device is floating as a
+ result of a grab, the device remains floating once the grab
+ deactivates.
If owner_events is False, all generated device events are
reported with respect to grab_window if selected. If
diff --git a/man/XIGrabEnter.txt b/man/XIGrabEnter.txt
index 513afcc..005a72b 100644
--- a/man/XIGrabEnter.txt
+++ b/man/XIGrabEnter.txt
@@ -108,6 +108,13 @@ DESCRIPTION
different window (independent of the logical state of the
modifier keys).
+ If the device is an attached slave device, the device is
+ automatically detached from the master device when the grab
+ activates and reattached to the same master device when the
+ grab deactivates. If the master device is removed while the
+ device is floating as a result of a grab, the device remains
+ floating once the grab deactivates.
+
Note that the logical state of a device (as seen by client
applications) may lag the physical state if device event
processing is frozen.
commit 1a5f4fd2fa3ac7cfa1671d5cf0975ff365294f29
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 5 15:58:57 2009 +1000
man: fix XIGrabEnter man page - text with needed to be reduced.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XIGrabEnter.txt b/man/XIGrabEnter.txt
index e2ab42c..513afcc 100644
--- a/man/XIGrabEnter.txt
+++ b/man/XIGrabEnter.txt
@@ -88,52 +88,56 @@ SYNOPSIS
DESCRIPTION
-----------
- XIGrabEnter and XIGrabFocusIn establish a passive grab. The modifier device
- for a enter grab is the paired master device if deviceid specifies a master
- pointer. Otherwise, the modifier device is the device specified with
- deviceid.
-
- For XIGrabEnter and XIGrabFocusIn, in the future, the device is actively
- grabbed (as for XIGrabDevice, the last-grab time is set to the time at
- which the pointer/focus entered window) if the device is not grabbed and
- the pointer has entered the grab_window or the focus has been set to the
- grab_window when the specified modifier keys are logically down on the
- modifier device and no other buttons or modifier keys are logically down.
+ XIGrabEnter and XIGrabFocusIn establish a passive grab. The
+ modifier device for a enter grab is the paired master device if
+ deviceid specifies a master pointer. Otherwise, the modifier
+ device is the device specified with deviceid.
+
+ For XIGrabEnter and XIGrabFocusIn, in the future, the device is
+ actively grabbed (as for XIGrabDevice, the last-grab time is
+ set to the time at which the pointer/focus entered window) if
+ the device is not grabbed and the pointer has entered the
+ grab_window or the focus has been set to the grab_window when
+ the specified modifier keys are logically down on the modifier
+ device and no other buttons or modifier keys are logically
+ down.
The interpretation of the remaining arguments is as for
XIGrabDevice. The active grab is terminated automatically when
- the pointer leaves the window or the focus is set to a different window
- (independent of the logical state of the modifier keys).
+ the pointer leaves the window or the focus is set to a
+ different window (independent of the logical state of the
+ modifier keys).
Note that the logical state of a device (as seen by client
applications) may lag the physical state if device event
processing is frozen.
- This request overrides all previous grabs by the same client of the same
- type and modifier combinations on the same window. A modifiers of
- XIAnyModifier is equivalent to issuing the grab request for all possible
- modifier combinations (including the combination of no modifiers). It is
- not required that all modifiers specified have currently assigned KeyCodes.
+ This request overrides all previous grabs by the same client of
+ the same type and modifier combinations on the same window. A
+ modifiers of XIAnyModifier is equivalent to issuing the grab
+ request for all possible modifier combinations (including the
+ combination of no modifiers). It is not required that all
+ modifiers specified have currently assigned KeyCodes.
If some other client has already issued a XIGrabEnter or
- XIGrabFocusIn on the same window, a BadAccess error results. When
- using XIAnyModifier, the request fails completely, and a XIBadAccess error
- results (no grabs are established) if there is a conflicting grab for any
- combination. XIGrabEnter and XIGrabFocusin have no effect on an
- active grab.
+ XIGrabFocusIn on the same window, a BadAccess error results.
+ When using XIAnyModifier, the request fails completely, and a
+ XIBadAccess error results (no grabs are established) if there
+ is a conflicting grab for any combination. XIGrabEnter and
+ XIGrabFocusin have no effect on an active grab.
XIGrabEnter and XIGrabFocusIn can generate BadDevice,
BadMatch, BadValue, and BadWindow errors.
- XIUngrabEnter and XIUngrabFocusIn releases the passive grab on the
- specified window if it was grabbed by this client. A modifier
- of XIAnyModifier is equivalent to issuing the ungrab request
- for all possible modifier combinations, including the combination of no
- modifiers. XIUngrabEnter and XIUngrabFocusIn have no effect on an active
- grab.
+ XIUngrabEnter and XIUngrabFocusIn releases the passive grab on
+ the specified window if it was grabbed by this client. A
+ modifier of XIAnyModifier is equivalent to issuing the ungrab
+ request for all possible modifier combinations, including the
+ combination of no modifiers. XIUngrabEnter and XIUngrabFocusIn
+ have no effect on an active grab.
- XIUngrabEnter and XIUngrabFocusIn can generate BadDevice, BadMatch,
- BadValue and BadWindow errors.
+ XIUngrabEnter and XIUngrabFocusIn can generate BadDevice,
+ BadMatch, BadValue and BadWindow errors.
DIAGNOSTICS
-----------
commit 0d19a3ec942aedf5432a9bda1e80f29f7186ce5b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 5 15:34:10 2009 +1000
Update library version for new symbols.
XI2 adds a whole lot of new symbols but leaves the existing ones. Minor bump
only.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/src/Makefile.am b/src/Makefile.am
index f99453d..4cc772f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -71,7 +71,7 @@ AM_CFLAGS = -I$(top_srcdir)/include \
$(MALLOC_ZERO_CFLAGS)
-libXi_la_LDFLAGS = -version-number 6:0:0 -no-undefined
+libXi_la_LDFLAGS = -version-number 6:1:0 -no-undefined
libXiincludedir = $(includedir)/X11/extensions
libXiinclude_HEADERS = $(top_srcdir)/include/X11/extensions/XInput.h \
commit 936f4993a9ece131aff03cf789b8c21cadaed47e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 5 08:50:20 2009 +1000
man: correct XListInputDevices description of the name field.
A device's name is the identifier set either by the server the
xorg.conf/HAL. The preconfigured device types (XI_MOUSE, XI_KEYBOARD, etc.)
are atoms listed in the type field only.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/XListInputDevices.txt b/man/XListInputDevices.txt
index aca1df9..276660d 100644
--- a/man/XListInputDevices.txt
+++ b/man/XListInputDevices.txt
@@ -85,23 +85,22 @@ DESCRIPTION
by the server.
The type field is of type Atom and indicates the nature of the
- device.
-
- The name field contains a pointer to a null-terminated string
- that corresponds to one of the defined device types. The name
- will correspond to one of the following strings (defined in the
- header file XI.h:
+ device. The type will correspond to one of the following strings
+ (defined in the header file XI.h):
XI_MOUSE XI_TABLET XI_KEYBOARD XI_TOUCHSCREEN XI_TOUCHPAD
XI_BUTTONBOX XI_BARCODE XI_TRACKBALL XI_QUADRATURE XI_ID_MODULE
XI_ONE_KNOB XI_NINE_KNOB XI_KNOB_BOX XI_SPACEBALL XI_DATAGLOVE
XI_EYETRACKER XI_CURSORKEYS XI_FOOTMOUSE XI_JOYSTICK
- These names may be directly compared with the name field of the
- XDeviceInfo structure, or used in an XInternAtom request to
- return an atom that can be compared with the type field of the
+ These strings may be used in an XInternAtom request to return
+ an atom that can be compared with the type field of the
XDeviceInfo structure.
+ The name field contains a pointer to a null-terminated string
+ that serves as identifier of the device. This identifier may be
+ user-configured or automatically assigned by the server.
+
The num_classes field is a number in the range 0-255 that
specifies the number of input classes supported by the device
for which information is returned by ListInputDevices. Some
commit bc3900ea706438005f8b5613de4d9fb6bd954f62
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 4 14:03:44 2009 +1000
Cosmetic fix, move a 'char* name' to 'char *name'
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index c3c0972..60e4bb1 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
@@ -136,7 +136,7 @@ typedef struct
typedef struct
{
int deviceid;
- char* name;
+ char *name;
int use;
int attachment;
Bool enabled;
commit 30de3da4c87322a73b2ab72e6ac83f689ec42adf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 4 13:26:45 2009 +1000
Allow foreign automake, remove empty AUTHORS and NEWS.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index e69de29..0000000
diff --git a/NEWS b/NEWS
deleted file mode 100644
index e69de29..0000000
diff --git a/configure.ac b/configure.ac
index 4c48734..700b922 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
AC_INIT(libXi, 1.2.99.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
-AM_INIT_AUTOMAKE([dist-bzip2])
+AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
# Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG
commit 4d8676a859a2a8ebde03d8a9fe6bd79060f16cf5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 4 11:45:53 2009 +1000
man: add XIQueryDevice and XIFreeDeviceInfo man page.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/man/Makefile.am b/man/Makefile.am
index 27f49da..1501fd6 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -34,6 +34,7 @@ XI2_manpages = \
XIGrabButton.txt \
XIGrabDevice.txt \
XIGrabEnter.txt \
+ XIQueryDevice.txt \
XIQueryPointer.txt \
XIQueryVersion.txt \
XISelectEvents.txt \
@@ -88,7 +89,8 @@ XI2_refpages = \
XIGetFocus.man \
XIGetSelectedEvents.man \
XIDeleteProperty.man \
- XIGetProperty.man
+ XIGetProperty.man \
+ XIFreeDeviceInfo.man
libman_ref = \
XGetDeviceDontPropagateList.man \
@@ -148,6 +150,7 @@ XIGetProperty.man: XIChangeProperty.man
XIDeleteProperty.man: XIChangeProperty.man
XIUngrabEnter.man XIGrabFocusIn.man XIUngrabFocusIn.man: XIGrabEnter.man
XIGetSelectedEvents.man: XISelectEvents.man
+XIFreeDeviceInfo.man: XIQueryDevice.man
# Strings to replace in man pages
XORGRELSTRING = $(PACKAGE_STRING)
diff --git a/man/XIQueryDevice.txt b/man/XIQueryDevice.txt
new file mode 100644
index 0000000..9fd0ee7
--- /dev/null
+++ b/man/XIQueryDevice.txt
@@ -0,0 +1,208 @@
+XIQUERYDEVICE(libmansuffix)
+============================
+
+NAME
+----
+
+ XIQueryDevice, XIFreeDeviceInfo - get information about devices.
+
+SYNOPSIS
+--------
+
+ #include <X11/extensions/XInput2.h>
+
+ XIDeviceInfo* XIQueryPointer( Display *display,
+ int deviceid,
+ int *ndevices_return);
+
+ XIFreeDeviceInfo( XIDeviceInfo *info);
+
+ deviceid
+ Specifies the device to query or XIAllDevices or
+ XIAllMasterDevices.
+
+ display
+ Specifies the connection to the X server.
+
+ ndevices_return
+ Returns the number of devices returned.
+
+ info
+ A list of device XIDeviceInfo structs to be freed.
+
+
+DESCRIPTION
+-----------
+
+ The XIQueryDevice returns information about one or more input
+ devices. If the deviceid specifies a device, ndevices_return is
+ 1 and the returned information describes only the requested
+ device. If deviceid is XIAllDevices or XIAllMasterDevices,
+ ndevices_return is the number of devices or master devices,
+ respectively, and the returned information represents all
+ devices or all master devices, respectively.
+
+ To free the XIDeviceInfo array returned by XIQueryDevice, use
+ XIFreeDeviceInfo.
+
+ For each input device requested, the XIQueryDevice returns an
+ XIDeviceInfo structure. Each structure contains information
+ about the capabilities of one input device available to the
+ server.
+
+ typedef struct
+ {
+ int deviceid;
+ char *name;
+ int use;
+ int attachment;
+ Bool enabled;
+ int num_classes;
+ XIAnyClassInfo **classes;
+ } XIDeviceInfo;
+
+ The deviceid is the numeric unique id of the device. A deviceid
+ is unique for the life-time of a device but a server may re-use
+ the id once a device has been removed.
+
+ The name points to a null-terminated string specifying the
+ identifier of the device.
+
+ The use and attachment fields specify the type of the device
+ and the current attachment or pairing.
+ - If use is XIMasterPointer, the device is a master pointer and
+ attachment specifies the deviceid of the paired master
+ keyboard.
+ - If use is XIMasterKeyboard, the device is a master keyboard,
+ and the attachment field specifies the paired master pointer.
+ - If use is XISlavePointer, the device is a slave device and
+ currently attached to the master pointer specified in
+ attachement.
+ - If use is XISlaveKeyboard, the device is a slave device an
+ currently attached to the master keyboard specified in
+ attachment.
+ - If use is XIFloatingSlave, the device is a slave device
+ currently not attached to any master device. The value of the
+ attachment field for floating slave devices is undefined.
+
+ The enabled field specifies if the device is currently enabled
+ and can send events. Disabled devices will not send events.
+
+ The num_classes field specifies the number of input classes
+ pointed to by classes. The first two fields of all input
+ classes are identical.
+
+ typedef struct
+ {
+ int type;
+ int sourceid;
+ } XIAnyClassInfo;
+
+ The type field specifies the type of the input class.
+ Currently, the following types are defined:
+ XIKeyClass, XIButtonClass, XIValuatorClass
+
+ In the future, additional types may be added. Clients are
+ required to ignore unknown input classes.
+
+ The sourceid is the deviceid this class originated from. For
+ master devices, the sourceid is typically the id of the slave
+ device currently sending events. For slave devices, the
+ sourceid is typically the device's id.
+
+ A device may have zero or one XIButtonClass, denoting the
+ device's capability to send button events.
+
+ typedef struct {
+ int mask_len;
+ unsigned char *mask;
+ } XIButtonState;
+
+ typedef struct
+ {
+ int type;
+ int sourceid;
+ int num_buttons;
+ Atom *labels;
+ XIButtonState state;
+ } XIButtonClassInfo;
+
+ The num_buttons field specifies the number of buttons available
+ on this device. A device that has an XIButtonClass must have at
+ least one button.
+
+ labels is a list of num_buttons Atoms specifying the button
+ labels for this device. If the label is not None, then the
+ label specifies the type of button in physical device order
+ (i.e. as the buttons are numbered on the physical input
+ device).
+
+ The state is the current button state as seen by clients (i.e.
+ after button mapping is applied). The mask_len field specifies
+ the length of mask in bytes. For each button on the device, the
+ respective bit in mask is set if the button is currently
+ logically down.
+
+ A device may have zero or one XIKeyClass, denoting the device's
+ capability to send key events.
+
+ typedef struct
+ {
+ int type;
+ int sourceid;
+ int num_keycodes;
+ int *keycodes;
+ } XIKeyClassInfo;
+
+ The num_keycodes field specifies the number of keycodes
+ available on this device. A device that has an XIKeyClass must
+ have at least one keycode.
+
+ keycodes is a list of num_keycodes keycodes the device may
+ send.
+
+ A device may have zero or more XIValuatorClass, denoting the
+ device's capability to send coordinates.
+
+ typedef struct
+ {
+ int type;
+ int sourceid;
+ int number;
+ Atom label;
+ double min;
+ double max;
+ double value;
+ int resolution;
+ int mode;
+ } XIValuatorInfo;
+
+ The number field specifies the number of the axis on the
+ physical device.
+
+ If the label field is not None, the value of label is an Atom
+ describing the axis.
+
+ min and max are the minimum and maximum values allowed on this
+ axis. If both are zero, no minumum or maximum values are set on
+ this device. value is the current value of this axis.
+
+ The resolution field specifies the resolution of the device in
+ units/m.
+
+ The mode specifies the mode of this axis. If the mode is
+ XIModeAbsolute this axis sends absolute coordinates. If the
+ mode is XIModeRelative, this device sends relative coordinates.
+
+ XIQueryDevice can generate a BadDevice error.
+
+ XIFreeDeviceInfo frees the information returned by
+ XIQueryDevice.
+
+DIAGNOSTICS
+-----------
+
+ BadDevice
+ An invalid device was specified. The device does not
+ exist or is not a pointer device.
+
commit c5a5d1800566b0ec073418a827ed5bc8195dd24e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 4 10:48:50 2009 +1000
Remove leftover RCS tags.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/COPYING b/COPYING
index 7e8f4df..9250c81 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,3 @@
-/* $XdotOrg: $ */
-
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/configure.ac b/configure.ac
index d05fb2a..4c48734 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,3 @@
-dnl $XdotOrg: lib/Xi/configure.ac,v 1.9 2005/12/15 00:24:30 kem Exp $
-dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
diff --git a/src/Makefile.am b/src/Makefile.am
index 6b40fc5..f99453d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,3 @@
-# $XdotOrg: lib/Xi/src/Makefile.am,v 1.6 2005/12/03 04:41:49 kem Exp $
-
lib_LTLIBRARIES = libXi.la
XI2_sources = XIAllowEvents.c \
commit aa8272dd31b69f84d19dbe2c45889b806df8260e
Author: Dan Nicholson <dbn.lists@gmail.com>
Date: Mon Aug 3 06:09:12 2009 -0700
man: missing .man suffixes in prereq rules breaks parallel make
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
diff --git a/man/Makefile.am b/man/Makefile.am
index a51f65a..27f49da 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -125,7 +125,7 @@ XGetDeviceDontPropagateList.man: XChangeDeviceDontPropagateList.man
XChangeDeviceControl.man: XGetDeviceControl.man
XChangeDeviceKeyMapping.man: XGetDeviceKeyMapping.man
XSetDeviceModifierMapping.man: XGetDeviceModifierMapping.man
-XDeviceTimeCoord: XGetDeviceMotionEvents.man
+XDeviceTimeCoord.man: XGetDeviceMotionEvents.man
XChangeFeedbackControl.man: XGetFeedbackControl.man
XUngrabDeviceButton.man: XGrabDeviceButton.man
XUngrabDeviceKey.man: XGrabDeviceKey.man
@@ -139,7 +139,7 @@ XChangeDeviceProperty.man: XGetDeviceProperty.man
XDeleteDeviceProperty.man: XGetDeviceProperty.man
# XI2 prereqs
-XIUndefineCursor: XIDefineCursor.man
+XIUndefineCursor.man: XIDefineCursor.man
XIUngrabButton.man XIGrabKeycode.man XIUngrabKeycode.man: XIGrabButton.man
XIGetClientPointer.man: XISetClientPointer.man
XIGetFocus.man: XISetFocus.man
commit 888f6c238de6f09cc5b079ae22c6f37496083007
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Jul 22 14:16:11 2009 +1000
Bump to 1.2.99.3
diff --git a/configure.ac b/configure.ac
index 28b17f3..d05fb2a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(libXi, 1.2.99.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
+AC_INIT(libXi, 1.2.99.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
commit c439c39cc0f985743fbc464849f6caa805b1a1a9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Jul 21 11:41:43 2009 +1000
Replace keysym grabs with keycode grabs.
Keysym grabs are tricky to get right for applications that are more
complicated than demo applications. otoh, we know keycode grabs are
working.
So let's go with keycode grabs for now and add keysym grabs later
when we've sorted out the details.
Requires inputproto 1.9.99.15
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/configure.ac b/configure.ac
index 15f2a17..28b17f3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@ AC_PROG_SED
XORG_CWARNFLAGS
# 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.14])
+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.15])
XI_CFLAGS="$CWARNFLAGS $XI_CFLAGS"
AC_SUBST(XI_CFLAGS)
AC_SUBST(XI_LIBS)
diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
index 1b46443..c3c0972 100644
--- a/include/X11/extensions/XInput2.h
+++ b/include/X11/extensions/XInput2.h
@@ -429,10 +429,10 @@ extern int XIGrabButton(
XIGrabModifiers *modifiers_inout
);
-extern int XIGrabKeysym(
+extern int XIGrabKeycode(
Display* display,
int deviceid,
- int keysym,
+ int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
@@ -475,10 +475,10 @@ extern Status XIUngrabButton(
XIGrabModifiers *modifiers
);
-extern Status XIUngrabKeysym(
+extern Status XIUngrabKeycode(
Display* display,
int deviceid,
- int keysym,
+ int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
diff --git a/man/Makefile.am b/man/Makefile.am
index c87aa56..a51f65a 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -78,8 +78,8 @@ libman_xml = $(libman_txt:.txt=.xml)
XI2_refpages = \
XIUndefineCursor.man \
XIUngrabButton.man \
- XIGrabKeysym.man \
- XIUngrabKeysym.man \
+ XIGrabKeycode.man \
+ XIUngrabKeycode.man \
XIUngrabDevice.man \
XIUngrabEnter.man \
XIGrabFocusIn.man \
@@ -140,7 +140,7 @@ XDeleteDeviceProperty.man: XGetDeviceProperty.man
# XI2 prereqs
XIUndefineCursor: XIDefineCursor.man
-XIUngrabButton.man XIGrabKeysym.man XIUngrabKeysym.man: XIGrabButton.man
+XIUngrabButton.man XIGrabKeycode.man XIUngrabKeycode.man: XIGrabButton.man
XIGetClientPointer.man: XISetClientPointer.man
XIGetFocus.man: XISetFocus.man
XIUngrabDevice.man: XIGrabDevice.man
diff --git a/man/XIGrabButton.txt b/man/XIGrabButton.txt
index af442e5..d9e3297 100644
--- a/man/XIGrabButton.txt
+++ b/man/XIGrabButton.txt
@@ -4,7 +4,7 @@ XIGRABBUTTON(libmansuffix)
NAME
----
- XIGrabButton, XIUngrabButton, XIGrabKeysym, XIUngrabKeysym -
+ XIGrabButton, XIUngrabButton, XIGrabKeycode, XIUngrabKeycode -
grab/ungrab buttons or keys
SYNOPSIS
@@ -31,9 +31,9 @@ SYNOPSIS
int num_modifiers,
XIGrabModifiers *modifiers);
- int XIGrabKeysym( Display *display,
+ int XIGrabKeycode( Display *display,
int deviceid,
- int keysym,
+ int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
@@ -42,9 +42,9 @@ SYNOPSIS
int num_modifiers,
XIGrabModifiers *modifiers_inout);
- int XIUngrabKeysym( Display *display,
+ int XIUngrabKeycode( Display *display,
int deviceid,
- int keysym,
+ int keycode,
Window grab_window,
int num_modifiers,
Reply to: