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>
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>
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>
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>
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>
Take the error codes as described in the man page for XSetDeviceMode. This
is more likely to be what clients expect, especially since the protocol spec
doesn't actually define when BadMode is to be reported.
This behaviour is the same as specified in the XSetDeviceMode man page.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Unrelated to the previous patches, the new value simply reflects
the reality that the minimum level for autoconf to configure
all x.org modules is 2.60 dated June 2006.
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
This macro aggregate a number of existing macros that sets commmon
X.Org components configuration options. It shields the configuration file from
future changes.
Using common defaults will reduce errors and maintenance.
Only the very small or inexistent custom section need periodic maintenance
when the structure of the component changes. Do not edit defaults.
This is the XI protocol specification document that used to be in xorg-docs.
It's now moved here, and if it ever sees updates, the updates will only
apply to here.
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>
Detaching a slave device during an explicit grab makes sense from a UI
perspective. It allows a client to get exclusive access to a device without
that device's events also feeding into the respective master device.
Thanks to Thomas Jaeger for his contribution.
This reverts commit d0b1e55b87.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
It is indistinguishable for the client whether the the server chooses a
ClientPointer or whether the CP was set through an XISetClientPointer
request. The only thing that matters is that a device was actually assigned
and will be used in the future.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>