Provided by: libx11-doc_1.6.4-3_all bug

NAME

       XkbChangeMap  -  Update  only  partial  components  of  a keyboard description, modify the
       appropriate fields in the server and map components  of  a  local  copy  of  the  keyboard
       description

SYNOPSIS

       Bool XkbChangeMap (Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes);

ARGUMENTS

       - dpy  connection to X server

       - xkb  description from which new values are taken

       - changes
              identifies component parts to update

DESCRIPTION

       To update only partial components of a keyboard description, modify the appropriate fields
       in the server and map components of a local copy of the keyboard  description,  then  call
       XkbChangeMap with an XkbMapChangesRec structure indicating which components have changed.

       XkbChangeMap  copies  any  components specified by the changes structure from the keyboard
       description, xkb, to the X server specified by dpy.

       If any components specified by changes are not present in the xkb parameter,  XkbChangeMap
       returns False. Otherwise, it sends a request to the server and returns True.

       XkbChangeMap can generate BadAlloc, BadLength, and BadValue protocol errors.

RETURN VALUES

       True           The  XkbChangeMap  function  returns  True  if  the components specified by
                      changes are present in the xkb parameter.

       False          The XkbChangeMap function returns False  if  the  components  specified  by
                      changes are not present in the xkb parameter.

STRUCTURES

       Use  the  XkbMapChangesRec  structure  to  identify and track partial modifications to the
       mapping components and to reduce the amount of traffic between the server and clients.

       typedef struct _XkbMapChanges {
           unsigned short   changed;            /∗ identifies valid components in
       structure */
           KeyCode          min_key_code;       /∗ lowest numbered keycode for device
       */
           KeyCode          max_key_code;       /∗ highest numbered keycode for device
       */
           unsigned char    first_type;         /∗ index of first key type modified */
           unsigned char    num_types;          /∗ # types modified */
           KeyCode          first_key_sym;      /∗ first key whose key_sym_map changed
       */
           unsigned char    num_key_syms;       /∗ # key_sym_map entries changed */
           KeyCode          first_key_act;      /∗ first key whose key_acts entry
       changed */
           unsigned char    num_key_acts;       /∗ # key_acts entries changed */
           KeyCode          first_key_behavior; /∗ first key whose behaviors changed */
           unsigned char    num_key_behaviors;  /∗ # behaviors entries changed */
           KeyCode          first_key_explicit; /∗ first key whose explicit entry
       changed */
           unsigned char    num_key_explicit;   /∗ # explicit entries changed */
           KeyCode          first_modmap_key;   /∗ first key whose modmap entry changed
       */
           unsigned char    num_modmap_keys;    /∗ # modmap entries changed */
           KeyCode          first_vmodmap_key;  /∗ first key whose vmodmap changed */
           unsigned char    num_vmodmap_keys;   /∗ # vmodmap entries changed */
           unsigned char    pad1;               /∗ reserved */
           unsigned short   vmods;              /∗ mask indicating which vmods changed
       */
       } XkbMapChangesRec,*XkbMapChangesPtr;

DIAGNOSTICS

       BadAlloc       Unable to allocate storage

       BadLength      The length of a  request  is  shorter  or  longer  than  that  required  to
                      minimally contain the arguments

       BadValue       An argument is out of range