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

NAME

       XkbResizeKeySyms - Change the number of symbols bound to a key

SYNOPSIS

       KeySym * XkbResizeKeySyms (XkbDescRec *xkb, int key, int needed);

ARGUMENTS

       xkb    keyboard description to be changed

       key    keycode for key to modify

       needed new number of keysyms required for key

DESCRIPTION

       XkbResizeKeySyms reserves the space needed for needed keysyms and returns a pointer to the
       beginning of the new array that holds the keysyms. It adjusts  the  offset  field  of  the
       key_sym_map  entry  for  the  key if necessary and can also change the syms, num_syms, and
       size_syms  fields  of  xkb->map  if  it  is  necessary  to  reallocate  the  syms   array.
       XkbResizeKeySyms  does not modify either the width or number of groups associated with the
       key.

       If needed is greater than the current number of  keysyms  for  the  key,  XkbResizeKeySyms
       initializes all new keysyms in the array to NoSymbol.

       Because  the  number  of symbols needed by a key is normally computed as width * number of
       groups, and XkbResizeKeySyms does not modify either the width or number of groups for  the
       key,  a  discrepancy  exists upon return from XkbResizeKeySyms between the space allocated
       for the keysyms and the number required.  The  unused  entries  in  the  list  of  symbols
       returned  by  XkbResizeKeySyms  are  not  preserved  across future calls to any of the map
       editing functions, so you must update the key symbol mapping (which updates the width  and
       number  of  groups  for  the  key)  before  calling  another allocator function. A call to
       XkbChangeTypesOfKey will update the mapping.

       If any allocation errors occur while resizing the number of  symbols  bound  to  the  key,
       XkbResizeKeySyms returns NULL.

SEE ALSO

       XkbChangeTypesOfKey(3), XkbResizeKeyActions(3)

NOTES

       A  change to the number of symbols bound to a key should be accompanied by a change in the
       number of actions bound to a key. Refer to XkbResizeKeyActions  for  more  information  on
       changing the number of actions bound to a key.