Age | Commit message (Collapse) | Author |
|
Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
The ButtonClass provides the number of buttons, not the lentgh of the mask.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
XIAllowEvents was extended with touchid and grab_window in
2ea2f99f4fe1dcd3b8e539ca41c482fc40a0533d. 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Also, match device event structure to make things easy.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
|
|
Conflicts:
XI2.h
XI2proto.h
specs/XI2proto.txt
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
|
|
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>
|
|
I'm now getting build failures due to missing stdint.h. It seems we
should include it explicitly in XI2proto.h anyways.
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>
|
|
This was already in the spec but the protocol itself hadn't cought up with
it.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
With c455db2, raw events were split up into using multiple evtypes instead
of a sub event type. The eventtype field itself however has not been removed
and was unused by both the server and the library.
Field converted into a padding field, wire layout stays the same.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
The protocol header does not include enough documentation to make the use of
doxygen really worthwile. Special doxygen tags beyond the very simple use of
/** and /**< contribute too much to the noise and make it hard to actually
read the code itself.
While no extra tags are added now, a run of doxygen over XI2proto and XI.h
still produces an acceptable output.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Add a flags member to DeviceEvent and DeviceKeyEvent; the only currently
defined flag is KeyRepeat, indicating a repeat event (a la XKB detectable
autorepeat), which is only valid for key events.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Effective modifiers are easy to calculate but let's send them down the wire
nonetheless. Effective group is slightly more complicated since group
wrapping must be taken into account - sending it down the wire simplifies
clients.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
In some cases it is required to know the source device of a particular
device class. In the future we might also do lazy copying of classes,
meaning that for a given device, each class may come from a different
source. Hence the source id should be included for each class.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
The structures following the request are referred to as "info", having a
name of "num_devices" is misleading as the number of info structs does not
always reflect the number of devices (e.g. if a device got removed).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
We use add/remove for slave devices, add/remove for the hierarchy changed
flags, so let's use add/remove to create a new device as well.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Counterpart to XISelectEvents, used to retrieve event masks from the server.
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
Since we're using stdint in the rest of the file, might as well ignore
CARD32 here.
|
|
This includes shuffling the xXIModifierInfo and xXIGroupInfo structs to the
common structs section.
|
|
Anything with prefix XI is per-device anyway.
|
|
|
|
Reported-by: Benjamin Close <benjamin.close@clearchain.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
Basically the same as XI 1.5, save the 16 bit deviceids.
|
|
Most notably XI2 provides keysym grabs instead of keycode grabs.
|
|
Basically the same as the core protocol AllowEvents.
|
|
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|