Provided by: libx11-doc_1.8.4-2_all bug

NAME

       XkbResizeKeyType - Change the number of levels in a key type

SYNOPSIS

       Status  XkbResizeKeyType (XkbDescPtr xkb, int type_ndx, int map_count, Bool want_preserve,
              int new_num_lvls);

ARGUMENTS

       xkb    keyboard description containing client map to update

       type_ndx
              index in xkb->map->types of type to change

       map_count
              total # of map entries needed for the type

       want_preserve
              True => list of preserved modifiers is necessary

       new_num_lvls
              new max # of levels for type

DESCRIPTION

       XkbResizeKeyType changes the type specified by xkb->map->types[type_ndx], and  reallocates
       the   symbols   and   actions  bound  to  all  keys  that  use  the  type,  if  necessary.
       XkbResizeKeyType updates only the local copy of the types in xkb; to update  the  server's
       copy   for   the   physical   device,   use   XkbSetMap   or  XkbChangeMap  after  calling
       XkbResizeKeyType.

       The map_count parameter specifies the total number of map entries needed for the type, and
       can  be zero or greater. If map_count is zero, XkbResizeKeyType frees the existing map and
       preserve entries for the type if they exist and sets them to NULL.

       The want_preserve parameter specifies whether a  preserve  list  for  the  key  should  be
       created.  If  want_preserve is True, the preserve list with map_count entries is allocated
       or reallocated if it already exists. Otherwise, if want_preserve is  False,  the  preserve
       field is freed if necessary and set to NULL.

       The  new_num_lvls  parameter specifies the new maximum number of shift levels for the type
       and is used to calculate and resize the symbols and actions bound to all keys that use the
       type.

       If  type_ndx  does not specify a legal type, new_num_lvls is less than 1, or the map_count
       is less than zero, XkbResizeKeyType returns BadValue. If XkbResizeKeyType  encounters  any
       problems with allocation, it returns BadAlloc. Otherwise, it returns Success.

RETURN VALUES

       Success        The XkbResizeKeyType function returns Success if type_ndx specifies a legal
                      type, new_num_lvls is greater than zero and map_count is positive.

DIAGNOSTICS

       BadAlloc       Unable to allocate storage

       BadValue       An argument is out of range

SEE ALSO

       XkbChangeMap(3), XkbSetMap(3)