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

x11proto-input: Changes to 'debian-unstable'



 ChangeLog                         |  332 ++++
 Makefile.am                       |    6 
 XI2.h                             |   38 
 XI2proto.h                        |   17 
 XI2proto.txt                      | 1677 ------------------------
 XIproto.txt                       | 2534 -------------------------------------
 configure.ac                      |   11 
 debian/changelog                  |    9 
 debian/control                    |    3 
 debian/x11proto-input-dev.docs    |    2 
 debian/x11proto-input-dev.install |    2 
 specs/.gitignore                  |    1 
 specs/Makefile.am                 |   14 
 specs/XI2proto.txt                | 1819 ++++++++++++++++++++++++++
 specs/XIproto.txt                 | 2576 ++++++++++++++++++++++++++++++++++++++
 15 files changed, 4808 insertions(+), 4233 deletions(-)

New commits:
commit 9dca0c24f76ca3b366e8703675ba65f983904071
Author: Cyril Brulebois <kibi@debian.org>
Date:   Fri Dec 16 13:24:13 2011 +0100

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index aa36933..1afd8e9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-x11proto-input (2.1-1) UNRELEASED; urgency=low
+x11proto-input (2.1-1) unstable; urgency=low
 
   * New upstream release.
   * Bump xutils-dev build-dep for new macros, add asciidoc build-dep.
   * Get rid of .docs, XI{,2}proto.txt were already listed in .install; and
     add XI{,2}proto.html there accordingly (thanks, asciidoc).
 
- -- Cyril Brulebois <kibi@debian.org>  Fri, 16 Dec 2011 13:17:14 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Fri, 16 Dec 2011 13:24:03 +0100
 
 x11proto-input (2.0.2-2) unstable; urgency=low
 

commit 59cc6740fd9692d22ac4d216f7ad5a629dcc665e
Author: Cyril Brulebois <kibi@debian.org>
Date:   Thu Dec 15 14:13:40 2011 +0100

    Ship *.txt and *.html through dh_install.

diff --git a/debian/changelog b/debian/changelog
index 0184fe2..aa36933 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ x11proto-input (2.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Bump xutils-dev build-dep for new macros, add asciidoc build-dep.
+  * Get rid of .docs, XI{,2}proto.txt were already listed in .install; and
+    add XI{,2}proto.html there accordingly (thanks, asciidoc).
 
  -- Cyril Brulebois <kibi@debian.org>  Fri, 16 Dec 2011 13:17:14 +0100
 
diff --git a/debian/x11proto-input-dev.docs b/debian/x11proto-input-dev.docs
deleted file mode 100644
index d29dcf3..0000000
--- a/debian/x11proto-input-dev.docs
+++ /dev/null
@@ -1,2 +0,0 @@
-XIproto.txt
-XI2proto.txt
diff --git a/debian/x11proto-input-dev.install b/debian/x11proto-input-dev.install
index f0277a0..13ca4a2 100644
--- a/debian/x11proto-input-dev.install
+++ b/debian/x11proto-input-dev.install
@@ -2,3 +2,5 @@ usr/include/X11/extensions/*
 usr/lib/pkgconfig/inputproto.pc /usr/share/pkgconfig
 usr/share/doc/inputproto/XIproto.txt  usr/share/doc/x11proto-input-dev
 usr/share/doc/inputproto/XI2proto.txt usr/share/doc/x11proto-input-dev
+usr/share/doc/inputproto/XIproto.html  usr/share/doc/x11proto-input-dev
+usr/share/doc/inputproto/XI2proto.html usr/share/doc/x11proto-input-dev

commit d2715280de146b190863ca592e01d6933acf4c0f
Author: Cyril Brulebois <kibi@debian.org>
Date:   Thu Dec 15 14:10:03 2011 +0100

    Bump xutils-dev build-dep for new macros, add asciidoc build-dep.

diff --git a/debian/changelog b/debian/changelog
index b4394e2..0184fe2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 x11proto-input (2.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Bump xutils-dev build-dep for new macros, add asciidoc build-dep.
 
  -- Cyril Brulebois <kibi@debian.org>  Fri, 16 Dec 2011 13:17:14 +0100
 
diff --git a/debian/control b/debian/control
index 32a34cf..976906d 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,8 @@ Build-Depends:
  debhelper (>= 8),
  dh-autoreconf,
  quilt,
- xutils-dev (>= 1:7.5~1),
+ xutils-dev (>= 1:7.5+4),
+ asciidoc,
 Standards-Version: 3.9.2
 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-input
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-input.git

commit caaaafb73528ee561746e8afb9116886ccc9ec7c
Author: Cyril Brulebois <kibi@debian.org>
Date:   Fri Dec 16 13:17:28 2011 +0100

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 48b6f0e..f9b4812 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,259 @@
-commit 84479bf87230905cd26d8395577058950230c103
+commit 8640944f4ff193027ce0f21622918b88da910e72
 Author: Peter Hutterer <peter.hutterer@who-t.net>
-Date:   Tue Jun 7 14:16:17 2011 +1000
+Date:   Fri Dec 16 11:06:13 2011 +1000
 
-    inputproto 2.0.2
+    inputproto 2.1
     
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 
-commit 3686697eb5a330deb222b5e95843f23037ca3faf
+commit 019a252a59c1d076b07a0162cb3ee6af42ceea14
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Dec 2 15:03:46 2011 +1000
+
+    specs: typo fix
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a9fcea66eb18fab330f3b27b3daedef2b5c9210a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Nov 11 14:33:34 2011 +1000
+
+    specs: smooth scrolling was added in 2.1, say so
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 279524b089c7b42871ee072cfc03a1fad7421b7b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+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 <peter.hutterer@who-t.net>
+
+commit 9f2b1a33063b139756e08951affe802e8af39a76
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+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 <peter.hutterer@who-t.net>
+
+commit 463ffaabab506ad6ddb3b55c5781ae91fcccfd04
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Sep 23 08:41:18 2011 +1000
+
+    specs: clarify that Preferred scroll valuators are per scroll direction
+    
+    Reported-by: Daniel Stone <daniel@fooishbar.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 9cfdeedd16e96c0e67e70537e97a8f8dd0358244
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jun 2 16:09:23 2011 +1000
+
+    inputproto 2.0.99.1 (first snapshot of 2.1)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 7d5a303cd8976a7eac1b96897c70d5d25c57ecf1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 15 12:33:04 2011 +1000
+
+    Move scroll information into a new class.
+    
+    Using labels only to mark smooth scrolling axes disallows scrolling from
+    hardware events (e.g. a mouse wheel). If those axes are marked as scrolling
+    axes instead, the clients lose information which hardware axis this event
+    corresponds to.
+    
+    For example, on Wacom devices, the client can benefit from smooth scrolling
+    on the strip or wheel event but may still require the knowledge whether the
+    axis is a vertical strip (e.g. Intuos3) or a absolute scrolling wheel (e.g.
+    Intuos4).
+    
+    Thus, add a new class to XIQueryDevice that represents scrolling information
+    on a valuator. One of these ScrollClass may exist for each ValuatorClass if
+    that valuator is a scrolling valuator. The increment field of this class
+    removes the requirement for 1.0 == 1 unit of scrolling.
+    
+    This isn't true in most cases, especially where physical scroll axes are
+    involved. Wacom Intuos4 scroll rings have a unit size of 3.0 and the driver
+    historically sent one scroll event per 3.0 increment or decrement. Mapping
+    one scroll event to 1.0 makes the ring mostly unusable through legacy
+    button events.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 186aa20619d1720bde49fd92d2834c8f9eadf49b
+Author: Daniel Stone <daniel@fooishbar.org>
+Date:   Wed Feb 23 17:37:29 2011 +0000
+
+    Document smooth-scrolling support
+    
+    Two new axes are added to support smooth scrolling: Rel Vert Scroll and
+    Rel Horiz Scroll.  Cumulative values of 1.0 with either magnitude on
+    these axes are considered to be equivalent to one legacy ButtonPress
+    event on the scroll buttons.
+    
+    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 53b58e679f977550301130794c8cb19391ecceb7
+Author: Daniel Stone <daniel@fooishbar.org>
+Date:   Tue Feb 15 14:27:53 2011 +0000
+
+    Add XIPointerEmulated for emulated events
+    
+    The XIPointerEmulated flag on pointer events means that the event was
+    emulated from a smooth-scroll or touch event to support legacy events,
+    and the client may ignore this if it is listening to the other events.
+    
+    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit af1fb609beece899188469a81ac9d8c5e07bfa4a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Jul 29 10:09:02 2011 +1000
+
+    Add sourceid to RawEvents (#34420)
+    
+    RawEvents in XI2 do not provide the source ID. The libXi headers however do
+    and it is currently always 0. Given that the sourceid may be useful for
+    some clients, send it down the wire.
+    
+    This has no effect on the wire size of the struct, we can re-use a pad byte
+    here.
+    
+    X.Org Bug 34420 <http://bugs.freedesktop.org/show_bug.cgi?id=34420>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 1e63d01d041108db6fe5be32d033e80419a6ab05
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Apr 12 13:07:53 2011 +1000
+
+    XI2.1: send RawEvents at all times.
+    
+    When a client grabbed a device, XI 2.0 only sends RawEvents to that client.
+    This behaviour is problematic and cannot be worked around for many
+    applications that need to continue receiving events.
+    
+    On the other hand, no client seems to rely on this behaviour or use it to
+    its advantage. For XI 2.1, disable this behaviour and continue to send raw
+    events regardless of the grab state of the device.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Acked-by: Chase Douglas <chase.douglas@canonical.com>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit b35f20b7bd9620710a7a6b63e39758fe83b4dec8
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Apr 8 13:26:27 2011 +1000
+
+    Announce 2.1 availability through the XI_2_Major and XI_2_Minor defines
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 47a2cc250398648732ba2086ca6ecb21e7dabdc0
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Apr 8 12:59:17 2011 +1000
+
+    Bump to 2.0.99
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 94b21b47b51c2c66aa0372dfc323d6aedf12b549
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 23 15:28:50 2011 +1000
+
+    specs: fix two typos in XI2proto.txt
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 9f33733fffddd166c64f0bfd293c3de385cf4411
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Aug 17 16:02:39 2011 +1000
+
+    specs: ValuatorClass includes a mode
+    
+    Documented in the description, but missing in the definition.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 2ba875f4f2907bb9735ee3317b7e07c5b9d1304b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 2 10:20:53 2011 +1000
+
+    Put a warning in about not adding any further libXi defines
+    
+    The matching commit in libXi is
+        e8531dd6a981c6cf19a1d256c29e886e34e8f51a
+        libXi-1.4.2-21-ge8531ddp
+    
+        Add XI2 library-internal array offsets to XIint.h
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ee91dcda461513cdca45160df580841daa6f50e2
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Mar 17 16:29:08 2011 +1000
+
+    specs: add a linebreak for asciidoc parsing
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 2cd2adb7a454072954704e1a215df49ce9dac410
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Jun 3 15:56:21 2011 +1000
+
+    Provide convenience defines for owner_events.
+    
+    No functional effect, just to improve readability of code.
+    
+    It's not obvious what "True" or "False" stands for in a function with 11
+    arguments. Compare
+        XIGrabButton(dpy, deviceid, button, grab_window, cursor,
+                     GrabModeAsync, GrabModeSync, True,
+                     event_mask, num_modifiers, &modifiers);
+    
+    vs.
+    
+    XIGrabButton(dpy, deviceid, button, grab_window, cursor,
+                 GrabModeAsync, GrabModeSync, XIOwnerEvents,
+                 event_mask, num_modifiers, &modifiers);
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit bef7648827a0696debdd629472a45508a30144b1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Jun 3 15:13:12 2011 +1000
+
+    Add XI2-specific defines for grab and property requests
+    
+    XI 2.0 headers forced clients to mix XI2 specific constants with defines for
+    core input. Most notable here are the grab code which required GrabModeAsync
+    or GrabModeSync from core, but _not_ AnyModifier (XIAnymodifier !=
+    AnyModifier). This is a hard-to-debug cause for bugs.
+    
+    Add defines for grab modes, grab return codes and property modes as well as
+    a define for the AnyPropertyType. These defines are identical to the ones
+    defined in core but stop the use of input-related defines from either core
+    or XI 1.x.
+    
+    Clients must use the core defines None and CurrentTime where applicable.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit b1149ab782619eaeadf70affd94239184e082d03
 Author: Alexandre Julliard <julliard@winehq.org>
 Date:   Tue Apr 12 22:39:25 2011 +0200
 
@@ -17,9 +264,78 @@ Date:   Tue Apr 12 22:39:25 2011 +0200
     
     Signed-off-by: Alexandre Julliard <julliard@winehq.org>
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    (cherry picked from commit b1149ab782619eaeadf70affd94239184e082d03)
 
-commit a4cab7946409613e27fbad195c861224ad0e0b10
+commit ab930a51047f48c7befd4316a9b116f37075697f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Mar 23 13:27:02 2011 +1000
+
+    specs: enable asciidoc parsing for XIproto.txt
+    
+    The vast majority of this patch are indentation changes, removing preceding
+    spaces from text.
+    Header lines  and some linebreaks to enable list parsing were added.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit ef7518cc6260e05a00c496c9e0f3a13c8a785b85
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Mar 23 13:32:42 2011 +1000
+
+    specs: move erroneous Errors: line to where it belongs
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Julien Cristau <jcristau@debian.org>
+
+commit 47901cd142e832eb930166cbfa769e4fbca969c5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Tue Mar 15 21:37:39 2011 -0400
+
+    XIproto.txt: fix whitespace issues
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 5f43b8b19e6abd00a6295692f3346295bb01b973
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Tue Mar 15 21:29:43 2011 -0400
+
+    XI2proto.txt: fix whitespace issues
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 0ac450f47c55fb2bac394f6377f1aabde1ab8429
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Tue Mar 15 15:43:48 2011 -0400
+
+    specs: convert XI2proto.txt to html using asciidoc
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit f21f00bd9b8e641d639d70d086df1b14faa34e38
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Mar 16 09:57:10 2011 +1000
+
+    Add minimal asciidoc syntax
+    
+    Though this protocol description is mainly to be viewed as textfile, a few
+    minor changes make it parsable for asciidoc to spit out reasonably
+    nicely-formatted html code.
+    
+    Changes include:
+    - underline section headers with the matching lines
+    - add linebreaks before lists to parse them as lists
+    - change indentation level for normal text to be left-marging aligned and
+      for <pre> text to be indented
+    - comment out section dividers
+    
+    It's possible to run asciidoc XI2proto.txt and get some nice html output
+    now.
+    
+    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit 13baef91f071ee1607f4c3bf6c1fea60e6651b89
 Author: Fernando Carrijo <fcarrijo@freedesktop.org>
 Date:   Thu Jan 27 22:40:11 2011 -0200
 
@@ -27,9 +343,8 @@ Date:   Thu Jan 27 22:40:11 2011 -0200
     
     Signed-off-by: Fernando Carrijo <fcarrijo@freedesktop.org>
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    (cherry picked from commit 13baef91f071ee1607f4c3bf6c1fea60e6651b89)
 
-commit bf66a58ddb0a39eb4a0ae8e58160780f8a2b2716
+commit 5c2d5fd99d73ae52aef62376046b5708c58a4271
 Author: Chase Douglas <chase.douglas@ubuntu.com>
 Date:   Fri Dec 17 17:11:09 2010 +0000
 
@@ -41,7 +356,6 @@ Date:   Fri Dec 17 17:11:09 2010 +0000
     Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
     Signed-off-by: Daniel Stone <daniel@fooishbar.org>
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    (cherry picked from commit 5c2d5fd99d73ae52aef62376046b5708c58a4271)
 
 commit 56ffb564712257e0f998170e83071a6ee85aa231
 Author: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/debian/changelog b/debian/changelog
index e105212..b4394e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-input (2.1-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Cyril Brulebois <kibi@debian.org>  Fri, 16 Dec 2011 13:17:14 +0100
+
 x11proto-input (2.0.2-2) unstable; urgency=low
 
   * Mark x11proto-input-dev Multi-Arch: foreign

commit 8640944f4ff193027ce0f21622918b88da910e72
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 16 11:06:13 2011 +1000

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

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 019a252a59c1d076b07a0162cb3ee6af42ceea14
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 2 15:03:46 2011 +1000

    specs: typo fix
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

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 <peter.hutterer@who-t.net>
Date:   Fri Nov 11 14:33:34 2011 +1000

    specs: smooth scrolling was added in 2.1, say so
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

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 <peter.hutterer@who-t.net>
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 <peter.hutterer@who-t.net>

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 <peter.hutterer@who-t.net>
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 <peter.hutterer@who-t.net>

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
                          peter.hutterer@redhat.com

commit 463ffaabab506ad6ddb3b55c5781ae91fcccfd04
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 23 08:41:18 2011 +1000

    specs: clarify that Preferred scroll valuators are per scroll direction
    
    Reported-by: Daniel Stone <daniel@fooishbar.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

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
 ------------------------------------

commit 9cfdeedd16e96c0e67e70537e97a8f8dd0358244
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 16:09:23 2011 +1000

    inputproto 2.0.99.1 (first snapshot of 2.1)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>

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

commit 7d5a303cd8976a7eac1b96897c70d5d25c57ecf1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 15 12:33:04 2011 +1000

    Move scroll information into a new class.
    
    Using labels only to mark smooth scrolling axes disallows scrolling from
    hardware events (e.g. a mouse wheel). If those axes are marked as scrolling
    axes instead, the clients lose information which hardware axis this event
    corresponds to.
    
    For example, on Wacom devices, the client can benefit from smooth scrolling
    on the strip or wheel event but may still require the knowledge whether the
    axis is a vertical strip (e.g. Intuos3) or a absolute scrolling wheel (e.g.
    Intuos4).
    
    Thus, add a new class to XIQueryDevice that represents scrolling information
    on a valuator. One of these ScrollClass may exist for each ValuatorClass if
    that valuator is a scrolling valuator. The increment field of this class
    removes the requirement for 1.0 == 1 unit of scrolling.
    
    This isn't true in most cases, especially where physical scroll axes are
    involved. Wacom Intuos4 scroll rings have a unit size of 3.0 and the driver
    historically sent one scroll event per 3.0 increment or decrement. Mapping
    one scroll event to 1.0 makes the ring mostly unusable through legacy
    button events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/XI2.h b/XI2.h
index 29ffdd1..18dd172 100644
--- a/XI2.h
+++ b/XI2.h
@@ -141,6 +141,15 @@
 #define XIKeyClass                              0
 #define XIButtonClass                           1
 #define XIValuatorClass                         2
+#define XIScrollClass                           3
+
+/* Scroll class types */
+#define XIScrollTypeVertical                    1
+#define XIScrollTypeHorizontal                  2
+
+/* Scroll class flags */
+#define XIScrollFlagNoEmulation                 (1 << 0)
+#define XIScrollFlagPreferred                   (1 << 1)
 
 /* Device event flags (common) */
 /* Device event flags (key events only) */
diff --git a/XI2proto.h b/XI2proto.h
index 8977e87..adcd0f3 100644
--- a/XI2proto.h
+++ b/XI2proto.h
@@ -188,6 +188,21 @@ typedef struct {
     uint16_t    pad2;
 } xXIValuatorInfo;
 
+/***
+ * Denotes a scroll valuator on a device.
+ * One XIScrollInfo describes exactly one scroll valuator that must have a
+ * XIValuatorInfo struct.
+ */
+typedef struct {
+    uint16_t    type;           /**< Always ValuatorClass         */
+    uint16_t    length;         /**< Length in 4 byte units       */
+    uint16_t    sourceid;       /**< source device for this class */
+    uint16_t    number;         /**< Valuator number              */
+    uint16_t    scroll_type;    /**< ::XIScrollTypeVertical, ::XIScrollTypeHorizontal */
+    uint16_t    pad0;
+    uint32_t    flags;          /**< ::XIScrollFlagEmulate, ::XIScrollFlagPreferred   */
+    FP3232      increment;      /**< Increment for one unit of scrolling              */
+} xXIScrollInfo;
 
 /**
  * Used to select for events on a given window.
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 4acb5a8..2b13845 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -126,20 +126,31 @@ are able to provide scrolling events through multi-finger drag gestures, or
 simply dragging your finger along a designated strip along the side of the
 touchpad.
 
-Newer X servers may provide 'Rel Vert Scroll' and 'Rel Horiz Scroll' valuators
-to provide scroll events with more precision than the button events.  If these
-valuators are present on a device, the server must provide two-way emulation
-between these valuators and the legacy button events.  A cumulative value of
-1.0 in either magnitude is considered to be equivalent to one button event for
-the legacy events, e.g., -2.0 on 'Rel Vert Scroll' sends two button
-press/release events for button 4.  Likewise, a button press event for
-button 7 generates a Rel Horiz Scroll valuator event with a value of +1.0.
-
-Any server providing this behaviour marks all button 4/5/6/7 events with the
-XIPointerEmulated flag for DeviceEvents, and the XIRawEmulated flag for raw
-events, to hint that applications should be using the new valuators in
-preference to the buttons.
-
+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.
+
+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
+Vertical sends two button press/release events for button 4. Likewise, a
+button press event for button 7 generates an event on the Horizontal
+valuator with a value of +1.0. The server may accumulate deltas of less than
+one unit of scrolling.
+
+Any server providing this behaviour marks emulated button or valuator events
+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.
 
 4. The Master/Slave device hierarchy
 ------------------------------------
@@ -329,7 +340,7 @@ If major_version is less than 2, a BadValue error occurs.
                  name:                  LISTofCHAR8
                  classes:               LISTofCLASS }
 
-    CLASS { BUTTONCLASS, KEYCLASS, AXISCLASS }
+    CLASS { BUTTONCLASS, KEYCLASS, AXISCLASS, SCROLLCLASS }
 
     BUTTONCLASS { type:                 ButtonClass
                   length:               CARD16
@@ -355,6 +366,20 @@ If major_version is less than 2, a BadValue error occurs.
                   resolution:           CARD32
                   mode:                 CARD8 }
 
+    SCROLLCLASS* {type:                 ScrollClass
+                  length:               CARD16
+                  sourceid:             CARD16
+                  axisnumber:           CARD16
+                  scroll_type:          SCROLLTYPE
+                  flags:                SETofSCROLLFLAGS
+                  increment:            FP3232 }
+
+    * since XI 2.1
+
+    SCROLLTYPE { Vertical, Horizontal }
+
+    SCROLLFLAGS { NoEmulation, Preferred }
+
 XIQueryDevice details information about the requested input devices.
 
     devices
@@ -457,6 +482,32 @@ The following classes may occur only once: ButtonClass, KeyClass
 An axis in Relative mode may specify min and max as a hint to the
 client. If no min and max information is available, both must be 0.
 
+    ScrollClass:
+    type
+        Always ScrollClass.
+    length
+        Length in 4 byte units.
+    sourceid
+        The device this class originates from.
+    axisnumber
+        Axis number that is referred to. This axis number must be listed in
+        the ValuatorClassInfo.
+    scroll_type:
+        Vertical for a vertical scrolling axis, Horizontal for a horizontal
+        scrolling axis.
+    flags:
+        A set of flags that apply to this scroll axis.
+        NoEmulation: no legacy scroll button events are generated for events
+                     on this scrolling axis.
+        Preferred: This axis is the preferred axis for emulating valuator
+                   events from legacy scroll button events.
+    increment:
+        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
+exist per ValuatorClass.
+
     ┌───
         XISelectEvents
             window:         Window

commit 186aa20619d1720bde49fd92d2834c8f9eadf49b
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Feb 23 17:37:29 2011 +0000

    Document smooth-scrolling support
    
    Two new axes are added to support smooth scrolling: Rel Vert Scroll and
    Rel Horiz Scroll.  Cumulative values of 1.0 with either magnitude on
    these axes are considered to be equivalent to one legacy ButtonPress
    event on the scroll buttons.
    
    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 5d50b45..4acb5a8 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -115,7 +115,31 @@ XI 1.x was not designed with support for multiple master devices (see Section
 to XI 1.x clients, all other master devices are invisible and cannot be
 accessed from XI 1.x calls.
 
-//                            ❧❧❧❧❧❧❧❧❧❧❧
+3.4 Smooth scrolling
+~~~~~~~~~~~~~~~~~~~~
+
+Historically, X implemented scrolling events by using button press events:
+button 4 was one “click” of the scroll wheel upwards, button 5 was downwards,
+button 6 was one unit of scrolling left, and button 7 was one unit of scrolling
+right.  This was sufficient for scroll wheel mice, but not for touchpads which
+are able to provide scrolling events through multi-finger drag gestures, or
+simply dragging your finger along a designated strip along the side of the
+touchpad.
+
+Newer X servers may provide 'Rel Vert Scroll' and 'Rel Horiz Scroll' valuators
+to provide scroll events with more precision than the button events.  If these
+valuators are present on a device, the server must provide two-way emulation
+between these valuators and the legacy button events.  A cumulative value of
+1.0 in either magnitude is considered to be equivalent to one button event for
+the legacy events, e.g., -2.0 on 'Rel Vert Scroll' sends two button
+press/release events for button 4.  Likewise, a button press event for
+button 7 generates a Rel Horiz Scroll valuator event with a value of +1.0.
+
+Any server providing this behaviour marks all button 4/5/6/7 events with the
+XIPointerEmulated flag for DeviceEvents, and the XIRawEmulated flag for raw
+events, to hint that applications should be using the new valuators in
+preference to the buttons.
+
 
 4. The Master/Slave device hierarchy
 ------------------------------------
@@ -1573,7 +1597,10 @@ KeyRelease, ButtonPress, ButtonRelease, Motion.
         valid for KeyPress events.
         PointerEmulated signals that the event has been emulated from another
         XI 2.x event for legacy client support, and that this event should
-        be ignored if the client listens for these events.
+        be ignored if the client listens for these events.  This flag is
+        set on scroll ButtonPress and RawButtonPress events (buttons 4, 5, 6
+        and 7) if a smooth-scrolling event on the Rel Vert Scroll or
+        Rel Horiz Scroll axes was also generated.
 
 Modifier state in mods is detailed as follows:
 

commit 53b58e679f977550301130794c8cb19391ecceb7
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Tue Feb 15 14:27:53 2011 +0000

    Add XIPointerEmulated for emulated events
    
    The XIPointerEmulated flag on pointer events means that the event was
    emulated from a smooth-scroll or touch event to support legacy events,
    and the client may ignore this if it is listening to the other events.
    
    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/XI2.h b/XI2.h
index 40a9faf..29ffdd1 100644
--- a/XI2.h
+++ b/XI2.h
@@ -146,6 +146,7 @@
 /* Device event flags (key events only) */
 #define XIKeyRepeat                             (1 << 16)
 /* Device event flags (pointer events only) */
+#define XIPointerEmulated                       (1 << 16)
 
 /* XI2 event mask macros */
 #define XISetMask(ptr, event)   (((unsigned char*)(ptr))[(event)>>3] |=  (1 << ((event) & 7)))
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index 8736b18..5d50b45 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -1526,7 +1526,7 @@ For a detailed description of classes, see the XIQueryDevice request.
 
     DEVICEEVENTFLAGS (all events): none
     DEVICEEVENTFLAGS (key events only): { KeyRepeat }
-    DEVICEEVENTFLAGS (pointer events only): none
+    DEVICEEVENTFLAGS (pointer events only): { PointerEmulated }
 
 An XIDeviceEvent is generated whenever the logical state of a device
 changes in response to a button press, a button release, a motion, a key
@@ -1571,6 +1571,9 @@ KeyRelease, ButtonPress, ButtonRelease, Motion.
         KeyRepeat means that this event is for repeating purposes, and
         the physical state of the key has not changed.  This is only
         valid for KeyPress events.
+        PointerEmulated signals that the event has been emulated from another
+        XI 2.x event for legacy client support, and that this event should
+        be ignored if the client listens for these events.
 
 Modifier state in mods is detailed as follows:
 

commit af1fb609beece899188469a81ac9d8c5e07bfa4a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 29 10:09:02 2011 +1000

    Add sourceid to RawEvents (#34420)
    
    RawEvents in XI2 do not provide the source ID. The libXi headers however do
    and it is currently always 0. Given that the sourceid may be useful for
    some clients, send it down the wire.
    
    This has no effect on the wire size of the struct, we can re-use a pad byte
    here.
    
    X.Org Bug 34420 <http://bugs.freedesktop.org/show_bug.cgi?id=34420>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>

diff --git a/XI2proto.h b/XI2proto.h
index 84574a5..8977e87 100644
--- a/XI2proto.h
+++ b/XI2proto.h


Reply to: