Commit graph

362 commits

Author SHA1 Message Date
Peter Hutterer
b321ea46fb specs: GrabtypeTouchBegin was added in XI 2.2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:04 +10:00
Peter Hutterer
3773e33579 specs: formatting fix, move AcceptTouch and RejectTouch onto their own line
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:04 +10:00
Peter Hutterer
4de6f26a70 specs: replace † with ²
† looks too much like a letter and we can't use * and ** because asciidoc
interprets it as lists.

Use numbers instead, and replace all current * with ¹.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:03 +10:00
Peter Hutterer
000a20296a specs: XITouchClass doesn't have properties
Leftover from an earlier version.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:03 +10:00
Peter Hutterer
0d7bfc10bf specs: Formatting fix
asciidoc requires caption to be on one line but this one here is too long.
Split it up instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:03 +10:00
Peter Hutterer
883143e345 specs: some wording fixes
Button press events are insufficient even on scroll wheels, so don't say
they are good enough.

Remove duplicate claim of event emulation

Don't claim we send touch events "without delay"

Touch screens hardly ever "physically move" an object.

Hyphenate "implementation-dependent"

Remove unnecessary "however"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 12:05:01 +10:00
Peter Hutterer
9a2e10213c specs: fix typos 'hierachy' → 'hierarchy'
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-02 10:49:59 +10:00
Peter Hutterer
5e18f74e24 Unbreak protocol ABI for XIAllowEvents - inputproto 2.1.99.6
XIAllowEvents was extended with touchid and grab_window in
2ea2f99f4f. This extended the size of
the request from 12 to 20 but also broke the ABI. Older server
match the request size exactly, so compiling libXi 1.5 against
inputproto 2.2 and then running it against a pre-XI 2.2 server causes a
BadLength for any XIAllowEvent request.

Add a new request for the new data.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2012-02-09 08:02:59 +10:00
Peter Hutterer
217afacda0 specs: explain touch behaviour for dependent devices
Dependent devices don't send touch events until the interaction is a true
touch interaction (i.e. doesn't just serve to move the pointer). Once that
happens, all touchpoints send touch events exclusively. Pointer movement
restarts once we're down to one touch that controls the pointer again.

For clients listening to touch events in addition to pointer events, this
also means that a two-finger tap looks identical to holding one finger down
and tapping with a second-finger. Both actions will result in short
TouchBegin/TouchEnd sequences for both fingers.

The above is the default behaviour we expect from touchpads, the protocol is
more generically worded to leave more room for drivers to decide when a
touch only controls the pointer and when it doesn't.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-02-02 17:39:39 +10:00
Peter Hutterer
fc9372868b specs: move touch support details to "Touch device support" section
Keep the changelog small.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-31 22:20:17 +10:00
Peter Hutterer
92f769675b specs: remove superfluous "Changes introduced by ..."
The line right above says the same thing.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-31 22:19:58 +10:00
Peter Hutterer
556ea96060 specs: move touch mode explanations to where it belongs
Rather than have two different explanations to the touch modes, remove it
from the "Changes in version 2.2" section and merge the content into the
text.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-31 22:19:41 +10:00
Gaetan Nadon
535a4377dd specs: replace hard coded number in some "See section" references
The glossary does not accept <<links>> however.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-26 13:23:15 +10:00
Gaetan Nadon
f3d2feead4 specs: fix Appendix A title
This section starts a new numbered sequence.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-26 13:23:04 +10:00
Gaetan Nadon
9ff28b092f specs: remove older manually typed in section number
These would come out in html as 5.2, 6.3 and 6.4.3.4

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-26 13:22:51 +10:00
Gaetan Nadon
508a360f65 specs: use subsections to group use cases description
It makes an entry in the appendix for quick navigation.
It looks more readable with subtitles.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-26 13:22:32 +10:00
Gaetan Nadon
08ba2d4e10 specs: Edit titles for section 3 and 4
In the htlm version, the section number appeared to be 3.2.1 and
4.2.2 because of the generated section number.

A section title should not begin with a number.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-01-26 13:22:19 +10:00
Peter Hutterer
1306ccf9f2 inputproto 2.1.99.5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-01-06 13:35:25 +10:00
Peter Hutterer
997ae03437 Set a flag on the pointer-emulating touch event
Toolkits need to know which touch event emulated a pointer event and which
ones do not. To quote Carlos Garnacho:

    GTK+ does client-side windows by default (GdkWindows without a backing X
    window), for this to work the toplevel window in the client needs to
    select for more events that it wouldn't normally select for in order to
    cater for the event masks in such child "windows". This means that
    ideally GTK+ should set the touch events mask in the toplevel, and then
    find out whether the "window" would receive pointer or touch events for
    the sequence emulating the pointer, and perform the emulation itself.

Reported-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-01-03 13:21:55 +10:00
Peter Hutterer
5ee845c1bf specs: purge leftover TouchAccepted note
This flag does not exist anymore.

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