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


       XkbResizeKeyType - Change the number of levels in a key type


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


       - 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


       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

       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

       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.


       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.


       BadAlloc       Unable to allocate storage

       BadValue       An argument is out of range


       XkbChangeMap(3), XkbSetMap(3)