XI.h | 11 ++++++++++ XI2proto.h | 2 - configure.ac | 10 --------- specs/XI2proto.txt | 55 +++++++++++++++++++++++------------------------------ 4 files changed, 37 insertions(+), 41 deletions(-)
New commits: commit b9f1b26f076cdba373e8b7a0b73384b35e8d799c Author: Peter Hutterer <[email protected]> Date: Wed Dec 21 15:30:22 2011 +1000 inputproto 2.1.99.4 Signed-off-by: Peter Hutterer <[email protected]> diff --git a/configure.ac b/configure.ac index d6c5904..efc5242 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([InputProto], [2.1.99.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([InputProto], [2.1.99.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit c508e9360414f9724cc875a4731a5fd8a3969d2b Author: Peter Hutterer <[email protected]> Date: Wed Dec 21 15:27:47 2011 +1000 specs: add XI 2.1 release to history section Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index dfcbde9..05d7801 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -16,6 +16,8 @@ History ------- - v2.2, ??: Multitouch support added +- v2.1, December 2011: new raw event behaviour, smooth scrolling support + added - v2.0, October 2009: Initial release of XI2 protocol [[intro-xi20]] commit 5c9a6569e5182a4c4c6ec052bcd76a9ca3b8f645 Author: Peter Hutterer <[email protected]> Date: Wed Dec 21 15:24:44 2011 +1000 Remove --enable-unstable-protocol configure option Protocol is reasonably stable and about to be merged onto the master branch. People should be used to stuff on master being a tad unstable, don't require any specific configure flags. Signed-off-by: Peter Hutterer <[email protected]> diff --git a/configure.ac b/configure.ac index d2b1c3c..d6c5904 100644 --- a/configure.ac +++ b/configure.ac @@ -11,14 +11,6 @@ XORG_DEFAULT_OPTIONS XORG_ENABLE_SPECS XORG_WITH_ASCIIDOC(8.4.5) -AC_ARG_ENABLE(unstable-protocol, - AS_HELP_STRING([--enable-unstable-protocol], - [Enables compilation of yet-to-be-finalised protocol (default: disabled)]), - [UNSTABLE_PROTO=$enableval], [UNSTABLE_PROTO=no]) -if ! test "x$UNSTABLE_PROTO" = xyes; then - AC_MSG_ERROR([This branch contains protocol elements which have not yet been finalised. When this branch is updated, you will probably need to recompile both the server, libXi, and input-using clients, and may experience crashes or undefined behaviour if you do not.]) -fi - AC_OUTPUT([Makefile specs/Makefile inputproto.pc]) commit aef700dbac09d3c8a576387be47e5693460f1393 Author: Peter Hutterer <[email protected]> Date: Wed Dec 21 15:23:23 2011 +1000 specs: remove parts of the "Work in progress" warning The protocol is stable enough now that a simple warning should be enough. Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 46895d8..dfcbde9 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -4,18 +4,6 @@ The X Input Extension 2.x :numbered: .This is a work in progress! -***************************************************************************** -While XI 2.0 is final and widely deployed, XI 2.1 is still a work in progress; -the protocol is not final and is subject to change at any time. While testing -and feedback is strongly encouraged and very much welcome, please be aware that -any part of the XI 2.1 additions may change from underneath you. We strongly -recommend against deploying it in production for this reason. - -Developing against XI 2.1 requires passing the --enable-unstable-protocol -argument when building inputproto, and additionally defining -XINPUT2_1_USE_UNSTABLE_PROTOCOL when building your applications. I'm sure you -get the point by now, so I promise not to mention it again. -***************************************************************************** Authors: commit 9a9746b95f3585bba9730105769e9c74520f6bc4 Author: Peter Hutterer <[email protected]> Date: Tue Dec 20 08:23:55 2011 +1000 Reinstate libXi's version defines Realistically, we can't remove these from the protocol without breaking older libraries. Introduced in a02566ca7fd37d279b957037e1251a3b3419866d Signed-off-by: Peter Hutterer <[email protected]> Reviewed-by: Chase Douglas <[email protected]> Signed-off-by: Chase Douglas <[email protected]> diff --git a/XI.h b/XI.h index 378b34a..7b44399 100644 --- a/XI.h +++ b/XI.h @@ -135,6 +135,17 @@ SOFTWARE. #define XI_FOOTMOUSE "FOOTMOUSE" #define XI_JOYSTICK "JOYSTICK" +/* Indices into the versions[] array (XExtInt.c). Used as a index to + * retrieve the minimum version of XI from _XiCheckExtInit */ +#define Dont_Check 0 +#define XInput_Initial_Release 1 +#define XInput_Add_XDeviceBell 2 +#define XInput_Add_XSetDeviceValuators 3 +#define XInput_Add_XChangeDeviceControl 4 +#define XInput_Add_DevicePresenceNotify 5 +#define XInput_Add_DeviceProperties 6 +/* DO NOT ADD TO HERE -> XI2 */ + #define XI_Absent 0 #define XI_Present 1 commit ee0bc61ee3fd775127f8cd222d83314f66255f2b Author: Peter Hutterer <[email protected]> Date: Tue Dec 20 08:22:52 2011 +1000 Drop wrong comment for sourceid in TouchOwnershipEvents Copy/paste error from DeviceChangedEvent Signed-off-by: Peter Hutterer <[email protected]> Reviewed-by: Chase Douglas <[email protected]> Signed-off-by: Chase Douglas <[email protected]> diff --git a/XI2proto.h b/XI2proto.h index 56df401..93d7e32 100644 --- a/XI2proto.h +++ b/XI2proto.h @@ -901,7 +901,7 @@ typedef struct Window event; Window child; /* └──────── 32 byte boundary ────────┘ */ - uint16_t sourceid; /**< Source of the new classes */ + uint16_t sourceid; uint16_t pad0; uint32_t flags; uint32_t pad1; commit 8640944f4ff193027ce0f21622918b88da910e72 Author: Peter Hutterer <[email protected]> Date: Fri Dec 16 11:06:13 2011 +1000 inputproto 2.1 Signed-off-by: Peter Hutterer <[email protected]> diff --git a/configure.ac b/configure.ac index c755917..8e2bb0d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([InputProto], [2.0.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([InputProto], [2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit b701750ee99e1e227ad8baa994b6fd3398949a3a Author: Cyril Brulebois <[email protected]> Date: Thu Dec 15 17:07:54 2011 +0100 specs: Fix tiny typo. Signed-off-by: Cyril Brulebois <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 8b79210..46895d8 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -2390,7 +2390,7 @@ require the client to announce XI 2.2 support in the XIQueryVersion request. considered the owner of the event. C receives a TouchBegin event, but does not receive a TouchOwnership event. ** When the touchpoint moves, C will receive a TouchUpdate event. Event - delivery to I is be subject to the synchronous delivery mechanism. The + delivery to I is subject to the synchronous delivery mechanism. The emulated motion notify event is queued in the server while the device is frozen. ** I may assert ownership by calling XIAllowEvents on Y with any mode other commit 8687f155d8072763c2c7d52cb48eb5f46bfaf705 Author: Peter Hutterer <[email protected]> Date: Wed Dec 14 08:56:59 2011 +1000 specs: clarify button state in touch events Emulated pointer events will have button 1 logically down, but touch events only represent the actual button state, irrespective of the touches. Signed-off-by: Peter Hutterer <[email protected]> Reviewed-by: Chase Douglas <[email protected]> Signed-off-by: Chase Douglas <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index dcc2bc9..8b79210 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -467,10 +467,12 @@ Pointer events are emulated as follows: touch with the same axis values of the touch event, followed by a button press event for button 1. - A TouchUpdate event generates a pointer motion event to the location of the - touch and/or to update axis values of the pointer device. + touch and/or to update axis values of the pointer device. The button state + as seen from the protocol includes button 1 set. - A TouchEnd event generates a pointer motion event to the location of the touch and/or to update the axis values if either have changed, followed by a button - release event for button 1. + release event for button 1. The button state as seen from the protocol + includes button 1 set. If a touch sequence emulates pointer events and an emulated pointer event triggers the activation of a passive grab, the grabbing client becomes the @@ -2150,6 +2152,9 @@ of IDs. The increment between two touch IDs is indeterminate. Clients may not assume that any future touches will have specific touch IDs. IDs are globally unique. +The button state in touch events represents the state of the device's +physical buttons only, even if that sequence is emulating pointer events. + Touch events do not generate enter/leave events. [[events-rawevent]] commit b1d71fe4cd3871a78e442159443c141193e79a7f Author: Peter Hutterer <[email protected]> Date: Wed Dec 14 08:56:09 2011 +1000 specs: drop leftover from active_touches removal Signed-off-by: Peter Hutterer <[email protected]> Reviewed-by: Chase Douglas <[email protected]> Signed-off-by: Chase Douglas <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 6082166..dcc2bc9 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -2112,11 +2112,6 @@ KeyRelease, ButtonPress, ButtonRelease, Motion. further TouchUpdate events once an event with TouchPendingEnd has been received. -The active_touches value denotes the number of touches in contact with -the source touch device surface when the event occurred. The value -includes the new touch for a TouchBegin event, and does not include the -ending touch for a TouchEnd event. - Modifier state in mods is detailed as follows: base_mods commit 019a252a59c1d076b07a0162cb3ee6af42ceea14 Author: Peter Hutterer <[email protected]> Date: Fri Dec 2 15:03:46 2011 +1000 specs: typo fix Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 6c1ccbe..f220557 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -218,7 +218,7 @@ event processing stops. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Many core protocol and some extension requests are ambiguous when multiple -master devices are available (e.g. QueryPointer does not specfy which pointer). +master devices are available (e.g. QueryPointer does not specify which pointer). The X server does not have the knowledge to chose the contextually correct master device. For each client, one master pointer is designated as this clients's "ClientPointer". Whenever a client sends an ambiguous request (e.g. commit a9fcea66eb18fab330f3b27b3daedef2b5c9210a Author: Peter Hutterer <[email protected]> Date: Fri Nov 11 14:33:34 2011 +1000 specs: smooth scrolling was added in 2.1, say so Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 2a25c4e..6c1ccbe 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -40,6 +40,7 @@ device information in each event (with the exception of core events). Changes introduced by version 2.1 - RawEvents are sent regardless of the grab state. +- Addition of the ScrollClass for smooth scrolling // ❧❧❧❧❧❧❧❧❧❧❧ commit 279524b089c7b42871ee072cfc03a1fad7421b7b Author: Peter Hutterer <[email protected]> Date: Tue Nov 8 15:36:02 2011 +1000 specs: scroll events have no specific event type, state so. This wasn't clear enough in the current spec. Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index b6707b3..2a25c4e 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -128,13 +128,14 @@ simply dragging your finger along a designated strip along the side of the touchpad. Newer X servers may provide scrolling information through valuators to -provide scroll events with more precision than the button events. Valuators -for axes sending scrolling information must have one ScrollClass for each -scrolling axis. - -If scrolling valuators are present on a device, the server must provide -two-way emulation between these valuators and the legacy button events for -each delta unit of scrolling. +provide clients with more precision than the legacy button events. This +scrolling information is part of the valuator data in device events. +Scrolling events do not have a specific event type. + +Valuators for axes sending scrolling information must have one +ScrollClass for each scrolling axis. If scrolling valuators are present on a +device, the server must provide two-way emulation between these valuators +and the legacy button events for each delta unit of scrolling. One unit of scrolling in either direction is considered to be equivalent to one button event, e.g. for a unit size of 1.0, -2.0 on an valuator type commit 9f2b1a33063b139756e08951affe802e8af39a76 Author: Peter Hutterer <[email protected]> Date: Tue Nov 8 15:29:24 2011 +1000 specs: We're up to version 2.1 now, say so Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 1a93c8d..b6707b3 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -2,6 +2,7 @@ The X Input Extension ===================== Version 2.0 + Version 2.1 Peter Hutterer [email protected] commit 463ffaabab506ad6ddb3b55c5781ae91fcccfd04 Author: Peter Hutterer <[email protected]> Date: Fri Sep 23 08:41:18 2011 +1000 specs: clarify that Preferred scroll valuators are per scroll direction Reported-by: Daniel Stone <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 2b13845..1a93c8d 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -147,10 +147,11 @@ with the XIPointerEmulated flag for DeviceEvents, and the XIRawEmulated flag for raw events, to hint at applications which event is a hardware event. If more than one scroll valuator of the same type is present on a device, -the valuator marked with Preferred is used to convert legacy button events -into scroll valuator events. If no valuator is marked Preferred or more than -one valuator is marked with Preferred, this should be considered a driver -bug and the behaviour is implementation-dependent. +the valuator marked with Preferred for the same scroll direction is used to +convert legacy button events into scroll valuator events. If no valuator is +marked Preferred or more than one valuator is marked with Preferred for this +scroll direction, this should be considered a driver bug and the behaviour +is implementation-dependent. 4. The Master/Slave device hierarchy ------------------------------------ -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

