XIQueryVersion − announce and query the support XI2 version.
#include <X11/extensions/XInput2.h>
Status
XIQueryVersion( Display *display,
int *major_version_inout,
int *minor_version_inout);
display
Specifies the connection to the X server.
major_version_inout
Specifies the client's supported XI2 version, and
returns the server's supported version.
minor_version_inout
Specifies the client's supported XI2 version, and
returns the server's supported version.
XIQueryVersion
announces the client's supported XI2 version to
the server and returns server's supported X Input version.
Clients
are required to use XIQueryVersion instead of
XGetExtensionVersion
if they use XI2 calls. The server may treat a client
differently
depending on the supported version announced by the client.
The major_version_inout must be 2 or greater, otherwise a
BadValue
error occurs.
If the server
does not support XI2, XIQueryVersion returns BadRequest
to the client. Otherwise, XIQueryVersion returns Success. In
both
cases major_version_inout and minor_version_inout are set to
the
server's supported version.
If the client
has previously called XIQueryVersion, then the result
depends on the previously requested version and the
currently
requested version.
If either the
previous or current requested versions is less than
2.2, or if the requested major version numbers do not match,
then
consecutive calls to XIQueryVersion by the same client
always
return the first returned major.minor version. If the client
requests a version lower than the first returned major.minor
version in a subsequent call, a BadValue error occurs.
If all of the
requested versions are 2.2 or greater, then
consecutive calls to XIQueryVersion by the same client with
the
same major version will return the requested version, but
the server
will operate according to the highest requested version
number or
the highest supported version, whichever is lower.
XIQueryVersion can generate a BadValue error.
int rc;
int major = 2;
int minor = 0;
rc =
XIQueryVersion(dpy, &major, &minor);
if (rc == Success)
printf("XI2 supported. (%d.%d)\n", major, minor);
else if (rc == BadRequest)
printf("No XI2 support. (%d.%d only)\n", major,
minor);
else
printf("Internal error\n");
BadValue
A value is outside of the permitted range.