Man Linux: Main Page and Category List

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.