Commit graph

342 commits

Author SHA1 Message Date
Peter Hutterer
e65ba758c2 specs: only pointer events have a PointerEmulated flag
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-03 13:21:35 +10:00
Peter Hutterer
9611be0a5b specs: Clarify rejection for touch events on current owner
The current owner never gets a TouchUpdate(PendingEnd), that event is
superfluous for the owner. The owner receives a TouchEnd when the touch
physically ends. If the touch is still active, the owner receives a
TouchEnd after rejecting the touch.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-03 09:43:39 +10:00
Peter Hutterer
b9f1b26f07 inputproto 2.1.99.4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-21 15:30:22 +10:00
Peter Hutterer
b4da32ed28 Merge branch 'multitouch-devel'
Conflicts:
	configure.ac
	specs/XI2proto.txt
2011-12-21 15:28:44 +10:00
Peter Hutterer
c508e93604 specs: add XI 2.1 release to history section
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-21 15:27:47 +10:00
Peter Hutterer
5c9a6569e5 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 <peter.hutterer@who-t.net>
2011-12-21 15:24:44 +10:00
Peter Hutterer
aef700dbac 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 <peter.hutterer@who-t.net>
2011-12-21 15:23:23 +10:00
Peter Hutterer
9a9746b95f Reinstate libXi's version defines
Realistically, we can't remove these from the protocol without breaking
older libraries.

Introduced in a02566ca7f

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-20 14:11:04 -08:00
Peter Hutterer
ee0bc61ee3 Drop wrong comment for sourceid in TouchOwnershipEvents
Copy/paste error from DeviceChangedEvent

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-20 14:10:29 -08:00
Peter Hutterer
8640944f4f inputproto 2.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-16 11:07:14 +10:00
Cyril Brulebois
b701750ee9 specs: Fix tiny typo.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-16 08:57:23 +10:00
Peter Hutterer
8687f155d8 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 <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-14 11:49:25 -08:00
Peter Hutterer
b1d71fe4cd specs: drop leftover from active_touches removal
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-14 11:48:50 -08:00
Chase Douglas
02eadf00f0 inputproto 2.1.99.3
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-13 10:35:18 -08:00
Chase Douglas
84c049b660 State that future touch IDs are indeterminate
This just makes it absolutely clear that clients should not make any
assumptions about future touch ID values.

I also added "strictly monotonically" increasing to the definition of
touch IDs. It's a more precise definition of the protocol.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-12 13:47:48 -08:00
Chase Douglas
7d20c9bf38 Touch IDs must be globally unique
XIAllowEvents with a master device and a touch ID must uniquely identify
a touch sequence. If touch IDs were unique per slave device, multiple
slave devices could have valid sequences with the same touch ID, and the
sequences may both be grabbed through the same master device grab.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-12 13:46:07 -08:00
Peter Hutterer
c4703fd9d9 Remove XI2.1 and XI2.2 warnings and errors
This is too much of a pain, anyone who includes XI headers needs to define
this. And that affects input and output drivers as well as legacy clients
that don't even need the new stuff.

Removing the need for defines would be enough but then the warnings clog up
the output and hide real warnings. Just ditch them and laugh at those that
use an experimental branch and expect it to work.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-12-12 11:24:20 -08:00
Peter Hutterer
019a252a59 specs: typo fix
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-09 23:31:23 +10:00
Peter Hutterer
a9fcea66eb specs: smooth scrolling was added in 2.1, say so
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11 14:34:07 +10:00
Peter Hutterer
c9c4e13e8a inputproto 2.1.99.2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11 14:22:08 +10:00
Peter Hutterer
279524b089 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>
2011-11-08 15:36:02 +10:00
Peter Hutterer
9f2b1a3306 specs: We're up to version 2.1 now, say so
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-08 15:29:24 +10:00
Peter Hutterer
b289b1c039 XI2: Use touchid, not touch_id in XIAllowEvents
Be consistent with other usages of touchid.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2011-11-04 07:41:31 +10:00
Peter Hutterer
86ce2d05e8 XI2: swap (Raw)TouchUpdate and (Raw)TouchEnd
Not having the event codes in the order begin/update/end does my head in
when debugging. It also means there's no symmetry between raw and normal
touch events as the ownership event is wedged in between.
Rearrange event codes to be Begin/Update/End for both, with the
OwnershipEvent being in between.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-11-03 10:43:24 -04:00
Peter Hutterer
463ffaabab 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>
2011-09-23 08:41:18 +10:00
Chase Douglas
cec7567863 Revert addition of active_touches to device events
I can't remember why it's there, and I don't see how it may be useful.
If a client really wants to know how many touches are on the device,
they can listen to raw events and count the number of active touches.

(Real reason: extending events is hard :)

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-09-16 11:47:38 -07:00
Chase Douglas
22c06a5ddb Fix Xi 2.x version comment in XI2.h
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-14 20:15:49 -05:00
Chase Douglas
88410aa51d inputproto 2.1.99.1 (first snapshot of 2.2)
Note that this is built on top of 2.0.99.1, which is a development
snapshot of 2.1.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-14 15:21:49 -05:00
Chase Douglas
fa16231f0e Allow grabbing clients to accept or reject touches any time
This is potentially both a performance and client complexity
improvement. An example is a gesture recognizer using touch grabs on
each window with a subscription. If events on a child window are known
to not match any subscription on the child window, then the client
should be able to reject the touch grab even if the parent window hasn't
accepted any of the touches, perhaps because the parent window
gesture hasn't timed out or crossed other thresholds yet.

As an inverse example, the events may match a child window subscription
before the root window has rejected ownership. The child window should
be able to accept the touch proactively. This allows for further clients
to receive a TouchEnd event earlier, and means the client may be able to
reduce state being tracked. If this were not allowed, the client would
need to wait until it received ownership before accepting the sequence.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-09-14 15:21:43 -05:00
Chase Douglas
2ea2f99f4f Extend XIAllowEvents for handling touch grab processing
This removes the XIAllowTouchEvents request, which was the only new
request added for multitouch.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-09-14 15:19:17 -05:00
Chase Douglas
3c400af4f9 Add event windows to ownership events
Also, match device event structure to make things easy.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:47:15 -05:00
Chase Douglas
dd9e4bc5f5 Really kill touch valuators
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:30:34 -05:00
Peter Hutterer
05fc509fdc specs: if a sequence ends, all clients get TouchPendingEnd
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:29:28 -05:00
Peter Hutterer
94fecdf129 specs: remove broken asciidoc link to XIAllowTouchEvents
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:28:26 -05:00
Peter Hutterer
4782a76b6e specs: remove comment about overlapping selections, not true
There are no overlapping selections for touch events.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:27:35 -05:00
Peter Hutterer
dd32802d2e specs: misc typos, rewording, etc.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:24:15 -05:00
Chase Douglas
cfa06b98d5 Bump version to 2.1.99 for XI 2.2 multitouch changes
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 15:09:57 -05:00
Chase Douglas
24e7dac91f Switch multitouch additions to XI 2.2
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 14:35:39 -05:00
Chase Douglas
b95adf9b14 Merge remote-tracking branch 'inputproto/master' into multitouch-devel
Conflicts:
	XI2.h
	XI2proto.h
	specs/XI2proto.txt

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-13 14:30:45 -05:00
Chase Douglas
d6dcfd4039 Revert "Specify dependent device pointer/touch handling"
See parent commit for details.

This reverts commit 4adfb5ad6c.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-12 16:01:53 -05:00
Chase Douglas
42284fa0a2 Revert "Fix touch cancel/resume semantics"
The main use case for this was drag and drop, which we realized does not
need any special handling that requires canceling touches.

This reverts commit 9e46820e4a.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-12 15:55:28 -05:00
Peter Hutterer
1b40cc4ff6 specs: extend XI2.1 raw events to include touch events
RawEvents are simple enough that we can re-use the detail field for the
touch ID tracking and just update the respective event types.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-07 10:27:44 -07:00
Peter Hutterer
b55d236a66 Add comment to XI2.h to mark where the 2.1 events start
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-07 10:27:35 -07:00
Peter Hutterer
3d23bf3782 Change file header to note version 2.x
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-07 10:27:24 -07:00
Peter Hutterer
63f3097d26 specs: Fix event lists for asciidoc parsing
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-07 10:26:48 -07:00
Peter Hutterer
4329d45d49 specs: Fix in-document references
The primary format for the specs is still the txt format (since that's
guaranteed to be available anywhere, including cgit). Having in-paragraph
references breaks the flow of reading. Fix up some references that aren't
strictly necessary anyway, reword some to be easier to read and change the
titles of some to match the actual title of the section.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-09-07 10:25:36 -07:00
Peter Hutterer
9cfdeedd16 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>
2011-09-02 15:02:15 +10:00
Peter Hutterer
7d5a303cd8 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>
2011-09-02 14:53:01 +10:00
Daniel Stone
186aa20619 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>
2011-09-02 14:50:13 +10:00
Daniel Stone
53b58e679f 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>
2011-09-02 14:49:45 +10:00