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>
State it explicitly.
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>
In XI2 requests, the length field isn't enough to determine the number of
elements since it may vary in future versions.
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>
With the added rules, trackpads should be manageable no matter what
occurs (button presses and pointer motion). Gesture and touch semantics
during these actions are not well defined, and cancelling touches cleans
up the protocol and implementation.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
The semantics of these grabs doesn't work for all use cases. Raw touch
events will likely work better.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
* Wording cleanups for tense and to make some sentences flow better.
* Upon further review, it does seem to make more sense to deliver
emulated pointer events through the same slave device rather than the
master device. Thus, slave devices (including floating devices) may
emit emulated pointer events.
* Peter is correct, it doesn't make sense to set the PointerEmulated
flag on touch events.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Remove IndepedentTouch and SemiMultitouch devices. These may be handled
in an implementation specific manner through the props array of ATOMs in
the touch class information.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
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>
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>
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>
Reword the introduction to the multitouch section to try to be a bit
clearer, and go on a mad section-labelling spree.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Add very visible FIXME sections to more clearly mark what's broken; also
remove the stipulation that only one grab may be active at a time.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
The #warning directive is intentionally outside the define to disable the
error. Early adopters of the protocol can't see this warning often enough.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The previous definition would give the wrong result for events that are
a multiple of 8.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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>
This is to restructure to get the simple cases clarified up first before
explaining more complex changes.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
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>
Also includes resolutions for dependent devices and implicit grabs and
how to handle slave touch device attachment and touch selections.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Introduce multitouch support through a new TouchClass, as well as new
TouchBegin, TouchEnd, TouchOwnership, TouchUpdate, and TouchUpdateUnowned
events. Bump to version 2.1.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Co-authored-by: Chase Douglas <chase.douglas@canonical.com>
Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net>