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

x11proto-input: Changes to 'ubuntu'



 ChangeLog                      |  645 +++++++++++++++++++++++++++++++++++
 XI.h                           |   11 
 XI2.h                          |   14 
 XI2proto.h                     |   74 +++-
 configure.ac                   |   10 
 debian/changelog               |   55 ++-
 debian/control                 |    6 
 debian/rules                   |    4 
 debian/x11proto-input-dev.docs |    2 
 specs/XI2proto.txt             |  745 ++++++++++++++++++++++++++++-------------
 10 files changed, 1300 insertions(+), 266 deletions(-)

New commits:
commit b8bc618ce89f3bffda28f514a95cecdc2a3acdfb
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Tue Jan 8 16:07:20 2013 +0100

    release to raring

diff --git a/debian/changelog b/debian/changelog
index 47fa4c3..01bc37b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-x11proto-input (2.2.99.1-1) UNRELEASED; urgency=low
+x11proto-input (2.2.99.1-0ubuntu1) raring; urgency=low
 
   * New upstream release candidate.
 
diff --git a/debian/control b/debian/control
index 976906d..2244c48 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,8 @@
 Source: x11proto-input
 Section: x11
 Priority: optional
-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Uploaders: Drew Parsons <dparsons@debian.org>, Cyril Brulebois <kibi@debian.org>
 Build-Depends:
  debhelper (>= 8),

commit 61e2a403a680365ce6f8ea944723308d7ae295de
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Tue Jan 8 15:03:44 2013 +0100

    New upstream release candidate.

diff --git a/ChangeLog b/ChangeLog
index de735ff..c7b6ea1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,129 @@
+commit 4832c94775ee4a02cfaf53ba427d7cf677f70932
+Merge: 48e3209 e93e9d0
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Dec 17 14:24:59 2012 +1000
+
+    Merge branch 'barriers'
+
+commit e93e9d004c11a59cab56139c0c04ea2b5c6a926b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Dec 17 14:18:07 2012 +1000
+
+    specs: removing a device results in a BarrierLeave event
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit bc009eb4dadf2138212291da05b514854923ae85
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Dec 7 14:41:03 2012 +1000
+
+    inputproto 2.2.99.1
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5f9d3b8584d88f49fa7533c429e32199a06ed215
+Author: Jasper St. Pierre <jstpierre@mecheye.net>
+Date:   Fri Dec 7 14:42:17 2012 +1000
+
+    Add support for pointer barrier events
+    
+    Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 0b88ca65bdaab4c60f945fe64c48982bc89e5d1f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Dec 7 14:41:54 2012 +1000
+
+    Claim support for XI 2.3
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 48e32091c5a3220a464caad49fd7dd013c429eda
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Dec 7 12:55:24 2012 +1000
+
+    Fix typo in comment
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 377efaaa9828b4004741744ae172a193b5483a34
+Author: Daniel Martin <consume.noise@gmail.com>
+Date:   Wed Nov 7 12:41:49 2012 +0100
+
+    specs: XI2: Fix mods in XIPassive(Un)GrabDevice
+    
+    XIPassiveGrabDevice and XIPassiveUngrabDevice are using lists of
+    modifier masks. This one corrects these types.
+    
+    MODIFIERMASK was introduced, because a SETofMODIFIERMASK differs from a
+    SETofKEYMASK: AnyModifier=(1<<15) vs. GrabAnyModifier=(1U<<31).
+    
+    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit eb38fd9af846afe39287d5cf281b0274f42e8558
+Author: Daniel Martin <consume.noise@gmail.com>
+Date:   Wed Nov 7 12:41:48 2012 +0100
+
+    specs: XI2: Rename AxisClass to ValuatorClass
+    
+    ValuatorClass is the XI2 term for AxisClass.
+    
+    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit b30e7221b8888b674e6889beeada9b5b9dfc2f34
+Author: Daniel Martin <consume.noise@gmail.com>
+Date:   Wed Nov 7 12:41:47 2012 +0100
+
+    specs: XI2: Fix typos
+    
+    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 743cb2cf1567cf685dfe5444621eb56447768c7c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Nov 2 15:37:28 2012 +1000
+
+    XI2proto: spec formatting fix
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a06905c8efc053e8ffcd0fc93736c0e45b715c38
+Author: Ran Benita <ran234@gmail.com>
+Date:   Sat Oct 27 14:56:49 2012 +0200
+
+    specs: XI2: add titles to requests/events and show them in TOC
+    
+    You often want to quickly jump to the specification of a specific
+    request/event, so add them to the table of contents to allow for that.
+    This also provides the reader with a quick glance at what the protocol
+    looks like.
+    
+    Signed-off-by: Ran Benita <ran234@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 74098071768a4b25670cf5582bc68433403deefe
+Author: Ran Benita <ran234@gmail.com>
+Date:   Sat Oct 27 14:56:48 2012 +0200
+
+    specs: XI2: make event/request name formatting consistent
+    
+    None of the other have ':' there.
+    
+    Signed-off-by: Ran Benita <ran234@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 3ed8aed32199edaa8621ccea571a04883e050cb5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jun 14 08:56:55 2012 +1000
+
+    Fix two typos in spec/comments
+    
+    The ButtonClass provides the number of buttons, not the lentgh of the mask.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
 commit e752e92dbdcf01b1cd46a3853f582ff765d19e90
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Fri Mar 2 12:58:18 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index 7e7c70a..47fa4c3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-input (2.2.99.1-1) UNRELEASED; urgency=low
+
+  * New upstream release candidate.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Tue, 08 Jan 2013 15:01:59 +0100
+
 x11proto-input (2.2-1) unstable; urgency=low
 
   * New upstream release.

commit e93e9d004c11a59cab56139c0c04ea2b5c6a926b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 17 14:18:07 2012 +1000

    specs: removing a device results in a BarrierLeave event
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index b1c29c0..d30fcca 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -2620,7 +2620,8 @@ through the barrier following a XIBarrierReleasePointer request. The time
 between the XIBarrierReleasePointer and the BarrierLeave event thus depends
 on user input.
 A BarrierLeave(PointerReleased) event is also generated if the barrier is
-destroyed while pointer movement is constrained by the barrier. This event
+destroyed while pointer movement is constrained by the barrier, or the
+master pointer blocked by the barrier is removed. This event
 has a dx/dy of 0/0.
 
 :numbered!:

commit bc009eb4dadf2138212291da05b514854923ae85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 7 14:41:03 2012 +1000

    inputproto 2.2.99.1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 1c74810..7c8e2eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.60])
-AC_INIT([InputProto], [2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([InputProto], [2.2.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 

commit 5f9d3b8584d88f49fa7533c429e32199a06ed215
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Fri Dec 7 14:42:17 2012 +1000

    Add support for pointer barrier events
    
    Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/XI2.h b/XI2.h
index 7b8b607..b1498a7 100644
--- a/XI2.h
+++ b/XI2.h
@@ -160,6 +160,11 @@
 #define XITouchPendingEnd                       (1 << 16)
 #define XITouchEmulatingPointer                 (1 << 17)
 
+/* Barrier event flags */
+#define XIBarrierPointerReleased                (1 << 0)
+#define XIBarrierDeviceIsGrabbed                (1 << 1)
+
+
 /* Touch modes */
 #define XIDirectTouch                           1
 #define XIDependentTouch                        2
@@ -199,7 +204,9 @@
 #define XI_RawTouchBegin                 22
 #define XI_RawTouchUpdate                23
 #define XI_RawTouchEnd                   24
-#define XI_LASTEVENT                     XI_RawTouchEnd
+#define XI_BarrierHit                    25 /* XI 2.3 */
+#define XI_BarrierLeave                  26
+#define XI_LASTEVENT                     XI_BarrierLeave
 /* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
  * as XI_LASTEVENT if the server is supposed to handle masks etc. for this
  * type of event. */
@@ -232,5 +239,7 @@
 #define XI_RawTouchBeginMask             (1 << XI_RawTouchBegin)
 #define XI_RawTouchEndMask               (1 << XI_RawTouchEnd)
 #define XI_RawTouchUpdateMask            (1 << XI_RawTouchUpdate)
+#define XI_BarrierHitMask                (1 << XI_BarrierHit)
+#define XI_BarrierLeaveMask              (1 << XI_BarrierLeave)
 
 #endif /* _XI2_H_ */
diff --git a/XI2proto.h b/XI2proto.h
index 9418357..4cdaa0d 100644
--- a/XI2proto.h
+++ b/XI2proto.h
@@ -67,6 +67,7 @@
 #define Time    uint32_t
 #define Atom    uint32_t
 #define Cursor  uint32_t
+#define Barrier uint32_t
 
 /**
  * XI2 Request opcodes
@@ -92,9 +93,10 @@
 #define X_XIDeleteProperty              58
 #define X_XIGetProperty                 59
 #define X_XIGetSelectedEvents           60
+#define X_XIBarrierReleasePointer       61
 
 /** Number of XI requests */
-#define XI2REQUESTS (X_XIGetSelectedEvents - X_XIQueryPointer + 1)
+#define XI2REQUESTS (X_XIBarrierReleasePointer - X_XIQueryPointer + 1)
 /** Number of XI2 events */
 #define XI2EVENTS   (XI_LASTEVENT + 1)
 
@@ -815,6 +817,22 @@ typedef struct {
 } xXIGetPropertyReply;
 #define sz_xXIGetPropertyReply               32
 
+typedef struct {
+    uint16_t    deviceid;
+    uint16_t    pad;
+    Barrier     barrier;
+    uint32_t    eventid;
+} xXIBarrierReleasePointerInfo;
+
+typedef struct {
+    uint8_t     reqType;                /**< Input extension major opcode */
+    uint8_t     ReqType;                /**< Always X_XIBarrierReleasePointer */
+    uint16_t    length;
+    uint32_t    num_barriers;
+    /* array of xXIBarrierReleasePointerInfo */
+} xXIBarrierReleasePointerReq;
+#define sz_xXIBarrierReleasePointerReq       8
+
 /*************************************************************************************
  *                                                                                   *
  *                                      EVENTS                                       *
@@ -1035,10 +1053,39 @@ typedef struct
     uint32_t    pad3;
 } xXIPropertyEvent;
 
+typedef struct
+{
+    uint8_t     type;                   /**< Always GenericEvent */
+    uint8_t     extension;              /**< XI extension offset */
+    uint16_t    sequenceNumber;
+    uint32_t    length;                 /**< Length in 4 byte units */
+    uint16_t    evtype;                 /**< ::XI_BarrierHit or ::XI_BarrierLeave */
+    uint16_t    deviceid;
+    Time        time;
+    uint32_t    eventid;
+    Window      root;
+    Window      event;
+    Barrier     barrier;
+/* └──────── 32 byte boundary ────────┘ */
+    uint32_t    dtime;
+    uint32_t    flags;                  /**< ::XIBarrierPointerReleased
+                                             ::XIBarrierDeviceIsGrabbed */
+    uint16_t    sourceid;
+    int16_t     pad;
+    FP1616      root_x;
+    FP1616      root_y;
+    FP3232      dx;
+    FP3232      dy;
+} xXIBarrierEvent;
+
+typedef xXIBarrierEvent xXIBarrierHitEvent;
+typedef xXIBarrierEvent xXIBarrierPointerReleasedEvent;
+typedef xXIBarrierEvent xXIBarrierLeaveEvent;
 
 #undef Window
 #undef Time
 #undef Atom
 #undef Cursor
+#undef Barrier
 
 #endif /* _XI2PROTO_H_ */
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index c018026..b1c29c0 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -14,6 +14,7 @@ Authors:
 History 
 -------
 
+- v2.3, December 2012: Pointer barrier events added
 - v2.2, March 2012: Multitouch support added
 - v2.1, December 2011: new raw event behaviour, smooth scrolling support
   added
@@ -57,6 +58,10 @@ Changes in version 2.2
 
 - Multitouch support added
 
+Changes in version 2.3
+----------------------
+
+- Pointer barrier events added
 
 //                            ❧❧❧❧❧❧❧❧❧❧❧
 
@@ -551,6 +556,54 @@ window set has been reached, the event is delivered:
 Emulated pointer events will have the PointerEmulated flag set. A touch
 event that emulates pointer events has the TouchEmulatingPointer flag set.
 
+
+[[barrier-events]]
+Pointer barrier events
+^^^^^^^^^^^^^^^^^^^^^^
+If a master pointer moves against a pointer barrier blocking movement in
+that pointer's direction, the movement of the pointer is clamped to the x or
+y coordinate of the barrier, whichever applies. For a description of pointer
+barriers and barrier creation and destruction see the XFixes protocol
+specification v 5.0 or later.
+http://cgit.freedesktop.org/xorg/proto/fixesproto/plain/fixesproto.txt
+
+A pointer hitting a blocking barrier creates a new barrier event sequence,
+identified by a unique event ID. A new event ID is assigned when the pointer
+first hits a barrier. Subsequent movements against or along the pointer
+barrier are assigned the same event ID. The event generated by the pointer
+leaving the barrier, or being released by a client request, is the last
+event with this event ID. Any future movements of this device blocked by
+this barrier will be assigned a new event ID.
+
+Pointer barrier events are delivered exclusively to the client that created
+the barrier, and to the window specified in the CreatePointerBarrier
+request (the "barrier window"). A pointer barrier blocks pointer movement
+regardless of whether its window is mapped and/or viewable. If the pointer
+barrier window is destroyed, the pointer barrier remains blocking but a
+client will not receive further events.
+
+If a device is actively grabbed by a client or a passive grab activated
+for this client, and the pointer moves against a pointer barrier created by
+this client and the grab-window is the barrier window, that client will
+receive pointer barrier events if:
+- owner-events is true or false and the grab's event mask includes
+  pointer barrier events, or
+- owner-events is true and the client has selected for barrier events on the
+  barrier window.
+
+If the grab-window is not the barrier window, the client will receive events
+if:
+- the client has selected for barrier events on the barrier window.
+
+If the barrier is not owned by this client, no barrier events are sent to
+this client. The client owning the barrier will receive events if:
+- the client has pointer barrier events selected on the window associated
+  with the pointer barrier
+
+The BarrierDeviceIsGrabbed flag is set whenever a pointer barrier event is
+generated while the device is actively grabbed by any client or a passive
+grab has activated for this device prior to the event.
+
 [[glossary-notations]]
 Notations used in this document
 -------------------------------
@@ -1940,6 +1993,48 @@ giving the number of trailing unread bytes in the stored property. If
 delete is True and the bytes_after is zero, the property is also
 deleted from the device, and a XIPropertyNotify event is generated on
 the device.  
+
+[[requests-xi23]]
+Requests introduced in version 2.3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[[requests-barrierreleasepointer]]
+XIBarrierReleasePointer
+^^^^^^^^^^^^^^^^^^^^^^^
+    ┌───
+        XIBarrierReleasePointer
+            num_items:       CARD32
+            ▶
+            data:            LISTofBARRIERRELEASEINFO
+    └───
+
+    BARRIERRELEASEINFO { deviceid: DEVICEID,
+                         barrier:  Barrier,
+                         eventid: CARD32 }
+
+Release a pointer currently blocked by a barrier. In the future, movement of
+this pointer against the barrier will not be blocked.
+
+        deviceid
+            The device currently being blocked by a barrier
+        barrier
+            The barrier currently blocking the device
+        eventid
+            The unique event ID assigned to this barrier event sequence
+
+If the barrier given does not currently block this device, or the eventid
+is invalid, this request does nothing.
+
+Releasing a pointer barrier is only valid during one barrier event sequence,
+and only applies to the next movement of this device against this barrier.
+If the pointer moves away from the barrier following a
+XIBarrierReleasePointer request, the release request is discarded. In the
+future, if the pointer moves against the barrier again, a new eventid is
+assigned and the client must re-issue the XIBarrierReleasePointer request.
+
+If the device is not a master pointer device, a BadDevice error results.
+If the barrier does not name a valid barrier, a BadValue error results.
+
      
 [[events]]
 Events
@@ -1984,6 +2079,11 @@ Version 2.2:
         - RawTouchUpdate
         - RawTouchEnd
 
+Version 2.3:
+
+        - BarrierHit
+        - BarrierLeave
+
 All events have a set of common fields specified as EVENTHEADER.
 
 
@@ -2434,6 +2534,94 @@ is now the owner of the touch sequence specified by touchid.
     flags
         A bitmask of flags for this event.
 
+[[events-xi23]]
+Events introduced in version 2.3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[[events-barrierevent]]
+BarrierEvent
+^^^^^^^^^^^^
+    ┌───
+        BarrierEvent
+            EVENTHEADER
+            eventid:                    CARD32
+            root:                       Window
+            event:                      Window
+            barrier:                    Barrier
+            dtime:                      CARD32
+            flags:                      SETofBARRIERFLAGS
+            sourceid:                   DEVICEID
+            root_x:                     FP1616
+            root_y:                     FP1616
+            dx:                         FP3232
+            dy:                         FP3232
+    └───
+
+    BARRIERFLAGS { PointerReleased, DeviceIsGrabbed }
+
+A BarrierEvent indicates interaction between a barrier and a pointer device.
+If the event type is BarrierHit, pointer movement has been blocked by a
+barrier. If the event type is BarrierLeave, a pointer previously blocked
+by a barrier has moved away from that barrier, or has moved
+through the blocking barrier following an earlier XIBarrierReleasePointer
+request.
+
+    eventid
+       The unique event ID for this barrier event sequence.
+    root
+    event
+        The root window or barrier window, respectively. The barrier window
+        is always the drawable specified in in the CreatePointerBarrier request.
+    barrier
+        The barrier blocking pointer movement.
+    dtime
+        The relative time in milliseconds between the last event and this
+        event.
+    flags
+        A set of flags that apply to this barrier event
+        PointerReleased:
+           The pointer has moved through the barrier following a
+           XIBarrierReleasePointer request (BarrierLeave only).
+        DeviceIsGrabbed:
+           The pointer device that generated this event is currently
+           grabbed.
+    sourceid
+        The source device that originally generated the event.
+    root_x
+    root_y
+        The position of the pointer in screen coordinates (16.16 fixed
+        point), after being constrained by barrier and/or screen extents.
+    dx
+    dy
+        The relative movement of the pointer from its previous position to
+        the new position if pointer movement were not constrained by this
+        barrier.
+
+Root coordinates in barrier events represent the position of the cursor
+after confinement by barriers, screens and RandR output extents.
+
+Barrier event IDs are provided in the eventid field of barrier events. Its
+value is always provided in every barrier event. Event IDs are
+represented as unsigned 32-bit values and increase strictly monotonically in
+value for each new barrier event sequence, wrapping back to 0 upon reaching
+the numerical limit of IDs. The increment between two event IDs is
+indeterminate. Clients may not assume that any future barrier constraints
+will have specific event IDs. IDs are unique per device per barrier.
+
+If a pointer is actively grabbed after a barrier event sequence has
+initiated, future barrier events of this sequence continue to use the same
+eventid, but all barrier events have the DeviceIsGrabbed flag set. If the
+pointer is ungrabbed, future events of this sequence have the same eventid
+and the DeviceIsGrabbed flag is unset.
+
+The PointerReleased flag may only be set on a BarrierLeave event.
+A BarrierLeave(PointerReleased) event is generated when the pointer moves
+through the barrier following a XIBarrierReleasePointer request. The time
+between the XIBarrierReleasePointer and the BarrierLeave event thus depends
+on user input.
+A BarrierLeave(PointerReleased) event is also generated if the barrier is
+destroyed while pointer movement is constrained by the barrier. This event
+has a dx/dy of 0/0.
 
 :numbered!:
 [[xi22-usecases]]

commit 0b88ca65bdaab4c60f945fe64c48982bc89e5d1f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 7 14:41:54 2012 +1000

    Claim support for XI 2.3
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/XI2.h b/XI2.h
index e864b06..7b8b607 100644
--- a/XI2.h
+++ b/XI2.h
@@ -30,7 +30,7 @@
    See commit libXi-1.4.2-21-ge8531dd */
 
 #define XI_2_Major                              2
-#define XI_2_Minor                              2
+#define XI_2_Minor                              3
 
 /* Property event flags */
 #define XIPropertyDeleted                       0

commit 48e32091c5a3220a464caad49fd7dd013c429eda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 7 12:55:24 2012 +1000

    Fix typo in comment
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/XI2proto.h b/XI2proto.h
index 1260200..9418357 100644
--- a/XI2proto.h
+++ b/XI2proto.h
@@ -1021,7 +1021,7 @@ typedef struct
     uint8_t     type;                   /**< Always GenericEvent */
     uint8_t     extension;              /**< XI extension offset */
     uint16_t    sequenceNumber;
-    uint32_t    length;                 /**< Length in 4 byte uints */
+    uint32_t    length;                 /**< Length in 4 byte units */
     uint16_t    evtype;                 /**< ::XI_PropertyEvent */
     uint16_t    deviceid;
     Time        time;

commit 377efaaa9828b4004741744ae172a193b5483a34
Author: Daniel Martin <consume.noise@gmail.com>
Date:   Wed Nov 7 12:41:49 2012 +0100

    specs: XI2: Fix mods in XIPassive(Un)GrabDevice
    
    XIPassiveGrabDevice and XIPassiveUngrabDevice are using lists of
    modifier masks. This one corrects these types.
    
    MODIFIERMASK was introduced, because a SETofMODIFIERMASK differs from a
    SETofKEYMASK: AnyModifier=(1<<15) vs. GrabAnyModifier=(1U<<31).
    
    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 3c88891..c018026 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -624,6 +624,11 @@ Data types
             The INT32 contains the integral part, the CARD32 the decimal fraction
             shifted by 32.
 
+    MODIFIERMASK
+            A MODIFIERMASK is a binary mask defined as (1 << modifier map index).
+            A SETofMODIFIERMASK is a binary OR of zero or more MODIFIERMASK or
+            GrabAnyModifier.
+
     VALUATORMASK
             A binary mask defined as (1 << valuator number).
             A SETofVALUATORMASK is a binary OR of zero or more VALUATORMASK.
@@ -1571,17 +1576,17 @@ XIPassiveGrabDevice
             num_modifiers:   INT16
             mask_len:        CARD16
             masks:           SETofEVENTMASK
-            modifiers:       CARD32 or GrabAnyModifier
+            modifiers:       LISTofSETofMODIFIERMASK
             ▶
             num_modifiers_return:    INT16
-            modifiers_return:        GRABMODIFIERINFO
+            modifiers_return:        LISTofGRABMODIFIERINFO
     └───
 
         GRABTYPE         { GrabtypeButton, GrabtypeKeycode, GrabtypeEnter,
                            GrabtypeFocusIn, GrabtypeTouchBegin¹ }
 
         GRABMODIFIERINFO {   status:    Access
-                             modifiers: CARD32 }
+                             modifiers: SETofMODIFIERMASK }
 
     ¹ since XI 2.2
 
@@ -1755,7 +1760,7 @@ XIPassiveUngrabDevice
             grab_type:       GRABTYPE
             grab_window:     Window
             num_modifiers:   INT16
-            modifiers:       MODIFIERINFO
+            modifiers:       LISTofSETofMODIFIERMASK
     └───
 
 Release an explicit passive grab on the specified input device.

commit eb38fd9af846afe39287d5cf281b0274f42e8558
Author: Daniel Martin <consume.noise@gmail.com>
Date:   Wed Nov 7 12:41:48 2012 +0100

    specs: XI2: Rename AxisClass to ValuatorClass
    
    ValuatorClass is the XI2 term for AxisClass.
    
    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index d239254..3c88891 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -701,39 +701,39 @@ XIQueryDevice
                  name:                  LISTofCHAR8
                  classes:               LISTofCLASS }
 
-    CLASS { BUTTONCLASS, KEYCLASS, AXISCLASS, SCROLLCLASS, TOUCHCLASS }
-
-    BUTTONCLASS { type:                 ButtonClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  num_buttons:          CARD16
-                  state:                SETofBUTTONMASK
-                  labels:               LISTofATOM }
-
-    KEYCLASS    { type:                 KeyClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  num_keys:             CARD16
-                  keys:                 LISTofCARD32 }
-
-    AXISCLASS   { type:                 AxisClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  axisnumber:           CARD16
-                  label:                ATOM
-                  min:                  FP3232
-                  max:                  FP3232
-                  value:                FP3232
-                  resolution:           CARD32
-                  mode:                 CARD8 }
-
-    SCROLLCLASS¹ {type:                 ScrollClass
-                  length:               CARD16
-                  sourceid:             CARD16
-                  axisnumber:           CARD16
-                  scroll_type:          SCROLLTYPE
-                  flags:                SETofSCROLLFLAGS
-                  increment:            FP3232 }
+    CLASS { BUTTONCLASS, KEYCLASS, VALUATORCLASS, SCROLLCLASS, TOUCHCLASS }
+
+    BUTTONCLASS   { type:                 ButtonClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    num_buttons:          CARD16
+                    state:                SETofBUTTONMASK
+                    labels:               LISTofATOM }
+
+    KEYCLASS      { type:                 KeyClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    num_keys:             CARD16
+                    keys:                 LISTofCARD32 }
+
+    VALUATORCLASS { type:                 ValuatorClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    number:               CARD16
+                    label:                ATOM
+                    min:                  FP3232
+                    max:                  FP3232
+                    value:                FP3232
+                    resolution:           CARD32
+                    mode:                 CARD8 }
+
+    SCROLLCLASS¹  { type:                 ScrollClass
+                    length:               CARD16
+                    sourceid:             CARD16
+                    number:               CARD16
+                    scroll_type:          SCROLLTYPE
+                    flags:                SETofSCROLLFLAGS
+                    increment:            FP3232 }
 
     SCROLLTYPE { Vertical, Horizontal }
 
@@ -825,15 +825,15 @@ The following classes may occur only once: ButtonClass, KeyClass
     keys
         List of keycodes provided.
 
-    AxisClass:
+    ValuatorClass:
     type
-        Always AxisClass.
+        Always ValuatorClass.
     length
         Length in 4 byte units.
     sourceid
         The device this class originates from.
-    axisnumber
-        Axis number of this axis. The axis number is in device-native
+    number
+        Valuator number of this axis. The valuator number is in device-native
         order and potential axis mappings are ignored.
     label
         Atom specifying the axis name. An Atom of None specifies an unlabeled
@@ -855,8 +855,8 @@ client. If no min and max information is available, both must be 0.
     ScrollClass:
     type
         Always ScrollClass.
-    axisnumber
-        Axis number that is referred to. This axis number must be listed in
+    number
+        Valuator number that is referred to. This valuator number must be listed in
         the ValuatorClassInfo.
     scroll_type:
         Vertical for a vertical scrolling axis, Horizontal for a horizontal
@@ -871,7 +871,7 @@ client. If no min and max information is available, both must be 0.
         The valuator delta equivalent to one positive unit of scrolling.
 
 A ScrollClass may only exist if the device has at least one ValuatorClass
-and each axisnumber listed in any ScrollClass. Only one ScrollClass may
+and each valuator number listed in any ScrollClass. Only one ScrollClass may
 exist per ValuatorClass.
 
     TouchClass:

commit b30e7221b8888b674e6889beeada9b5b9dfc2f34
Author: Daniel Martin <consume.noise@gmail.com>
Date:   Wed Nov 7 12:41:47 2012 +0100

    specs: XI2: Fix typos
    
    Signed-off-by: Daniel Martin <consume.noise@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index f425d7c..d239254 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -32,7 +32,7 @@ XI2 provides a number of enhancements over version 1.5, including:
   minimum length of 32 bytes.
 - explicit device hierarchy of master and slave devices. See Section
 <<hierarchy,The Master/Slave device hierarchy>>.
-- use of multiple independent master devices (Multi-Poiner X or MPX).
+- use of multiple independent master devices (Multi-Pointer X or MPX).
 - the ability for devices to change capabilities at runtime.
 - raw device events
 
@@ -616,7 +616,7 @@ Data types
 
     FP1616
             Fixed point decimal in 16.16 format as one INT16 and one CARD16.
-            The INT16 contains the integral part, the CARD32 the decimal fraction
+            The INT16 contains the integral part, the CARD16 the decimal fraction
             shifted by 16.
 
     FP3232
@@ -1794,9 +1794,9 @@ List the properties associated with the given device.
 
         deviceid
             The device to list the properties for.
-        num_atoms
-            Number of atoms in the reply
-        atoms
+        num_properties
+            Number of properties in the reply
+        properties
             All properties on the device.
 
 [[requests-changeproperty]]

commit 743cb2cf1567cf685dfe5444621eb56447768c7c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 2 15:37:28 2012 +1000

    XI2proto: spec formatting fix
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 376a6bb..f425d7c 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -2209,7 +2209,8 @@ Modifier state in mods is detailed as follows:
     locked_mods
         XKB locked modifier state.
 
-    Group state in group is detailed as follows:
+Group state in group is detailed as follows:
+
     base_group
         XKB base group state.
     latched_group

commit a06905c8efc053e8ffcd0fc93736c0e45b715c38
Author: Ran Benita <ran234@gmail.com>
Date:   Sat Oct 27 14:56:49 2012 +0200

    specs: XI2: add titles to requests/events and show them in TOC
    
    You often want to quickly jump to the specification of a specific
    request/event, so add them to the table of contents to allow for that.
    This also provides the reader with a quick glance at what the protocol
    looks like.
    
    Signed-off-by: Ran Benita <ran234@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 2547692..376a6bb 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -1,5 +1,6 @@
 The X Input Extension 2.x
 =========================
+:toclevels: 3
 :toc:
 :numbered:
 
@@ -655,6 +656,8 @@ Requests introduced in version 2.0
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 [[requests-queryversion]]
+XIQueryVersion
+^^^^^^^^^^^^^^
     ┌───
         XIQueryVersion
         major_version:          CARD16
@@ -679,6 +682,8 @@ server supports a version which is compatible with its expectations.
 If major_version is less than 2, a BadValue error occurs.
 
 [[requests-querydevice]]
+XIQueryDevice
+^^^^^^^^^^^^^
     ┌───
         XIQueryDevice
         DEVICE                  deviceid
@@ -887,6 +892,8 @@ Devices with a TouchClass emit touch events with the same axes as pointer
 events.
 
 [[requests-selectevents]]
+XISelectEvents
+^^^^^^^^^^^^^^
     ┌───
         XISelectEvents
             window:         Window
@@ -938,6 +945,8 @@ specific device when another client has a selection for XIAllDevices), a
 BadAccess error occurs.
 
 [[requests-getselectedevents]]
+XIGetSelectedEvents
+^^^^^^^^^^^^^^^^^^^
     ┌───
         XIGetSelectedEvents
             window:         Window
@@ -962,6 +971,8 @@ If num_masks is 0, no events have been selected by this client on the
 given window.
 
 [[requests-querypointer]]
+XIQueryPointer
+^^^^^^^^^^^^^^
     ┌───
         XIQueryPointer
             window:         Window
@@ -1007,6 +1018,8 @@ If the device is not a master pointer device or not a floating slave
 pointer, a BadDevice error results.
 
 [[requests-warppointer]]
+XIWarpPointer
+^^^^^^^^^^^^^
     ┌───
         XIWarpPointer
             src_win:         Window
@@ -1053,6 +1066,8 @@ This request will generate events just as if the user had instantaneously
 moved the pointer.
 
 [[requests-changecursor]]
+XIChangeCursor
+^^^^^^^^^^^^^^
     ┌───
         XIChangeCursor
             win:             Window
@@ -1085,6 +1100,8 @@ If deviceid does not specify a master pointer, a BadDevice error


Reply to: