[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: