XIQUERYVERSION(3)

NAME
XIQueryVersion - announce and query the support XI2 version.

SYNOPSIS

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

DESCRIPTION

    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.

EXAMPLES

    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");

DIAGNOSTICS

    BadValue
           A value is outside of the permitted range.