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.lankho...@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-disc...@lists.ubuntu.com> Uploaders: Drew Parsons <dpars...@debian.org>, Cyril Brulebois <k...@debian.org> Build-Depends: debhelper (>= 8), commit 61e2a403a680365ce6f8ea944723308d7ae295de Author: Maarten Lankhorst <maarten.lankho...@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.hutte...@who-t.net> +Date: Mon Dec 17 14:24:59 2012 +1000 + + Merge branch 'barriers' + +commit e93e9d004c11a59cab56139c0c04ea2b5c6a926b +Author: Peter Hutterer <peter.hutte...@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.hutte...@who-t.net> + +commit bc009eb4dadf2138212291da05b514854923ae85 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 7 14:41:03 2012 +1000 + + inputproto 2.2.99.1 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 5f9d3b8584d88f49fa7533c429e32199a06ed215 +Author: Jasper St. Pierre <jstpie...@mecheye.net> +Date: Fri Dec 7 14:42:17 2012 +1000 + + Add support for pointer barrier events + + Signed-off-by: Jasper St. Pierre <jstpie...@mecheye.net> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 0b88ca65bdaab4c60f945fe64c48982bc89e5d1f +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 7 14:41:54 2012 +1000 + + Claim support for XI 2.3 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 48e32091c5a3220a464caad49fd7dd013c429eda +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 7 12:55:24 2012 +1000 + + Fix typo in comment + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 377efaaa9828b4004741744ae172a193b5483a34 +Author: Daniel Martin <consume.no...@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.no...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit eb38fd9af846afe39287d5cf281b0274f42e8558 +Author: Daniel Martin <consume.no...@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.no...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit b30e7221b8888b674e6889beeada9b5b9dfc2f34 +Author: Daniel Martin <consume.no...@gmail.com> +Date: Wed Nov 7 12:41:47 2012 +0100 + + specs: XI2: Fix typos + + Signed-off-by: Daniel Martin <consume.no...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 743cb2cf1567cf685dfe5444621eb56447768c7c +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Nov 2 15:37:28 2012 +1000 + + XI2proto: spec formatting fix + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit a06905c8efc053e8ffcd0fc93736c0e45b715c38 +Author: Ran Benita <ran...@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 <ran...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 74098071768a4b25670cf5582bc68433403deefe +Author: Ran Benita <ran...@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 <ran...@gmail.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 3ed8aed32199edaa8621ccea571a04883e050cb5 +Author: Peter Hutterer <peter.hutte...@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.hutte...@who-t.net> + commit e752e92dbdcf01b1cd46a3853f582ff765d19e90 Author: Peter Hutterer <peter.hutte...@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.lankho...@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.hutte...@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.hutte...@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.hutte...@who-t.net> Date: Fri Dec 7 14:41:03 2012 +1000 inputproto 2.2.99.1 Signed-off-by: Peter Hutterer <peter.hutte...@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 <jstpie...@mecheye.net> Date: Fri Dec 7 14:42:17 2012 +1000 Add support for pointer barrier events Signed-off-by: Jasper St. Pierre <jstpie...@mecheye.net> Signed-off-by: Peter Hutterer <peter.hutte...@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.hutte...@who-t.net> Date: Fri Dec 7 14:41:54 2012 +1000 Claim support for XI 2.3 Signed-off-by: Peter Hutterer <peter.hutte...@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.hutte...@who-t.net> Date: Fri Dec 7 12:55:24 2012 +1000 Fix typo in comment Signed-off-by: Peter Hutterer <peter.hutte...@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.no...@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.no...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@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.no...@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.no...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@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.no...@gmail.com> Date: Wed Nov 7 12:41:47 2012 +0100 specs: XI2: Fix typos Signed-off-by: Daniel Martin <consume.no...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@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.hutte...@who-t.net> Date: Fri Nov 2 15:37:28 2012 +1000 XI2proto: spec formatting fix Signed-off-by: Peter Hutterer <peter.hutte...@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 <ran...@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 <ran...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1tsap7-0002ix...@vasks.debian.org