Table of Contents


XkbFreeNames - Free symbolic names structures


void XkbFreeNames
(XkbDescPtr xkb, unsigned int which, Bool free_map);


- xkb
keyboard description for which names are to be freed
- which
mask of names components to be freed
- free_map
True => XkbNamesRec structure itself should be freed


Do not free symbolic names structures directly using free or XFree. Use XkbFreeNames instead.

The which parameter is the bitwise inclusive OR of the valid names mask bits defined in Table 1.

Xkb provides several functions that work with symbolic names. Each of these functions uses a mask to specify individual fields of the structures described above. These masks and their relationships to the fields in a keyboard description are shown in Table 1.

Table 1 Symbolic Names Masks
Mask Bit    Value    Keyboard    Field
XkbKeycodesNameMask    (1<<0)    Xkb->names    keycodes
XkbGeometryNameMask    (1<<1)    Xkb->names    geometry
XkbSymbolsNameMask    (1<<2)    Xkb->names    symbols
XkbPhysSymbolsNameMask    (1<<3)    Xkb->names    phys_symbols
XkbTypesNameMask    (1<<4)    Xkb->names    type
XkbCompatNameMask    (1<<5)    Xkb->names    compat
XkbKeyTypeNamesMask    (1<<6)    Xkb->map    type[*].name
XkbKTLevelNamesMask    (1<<7)    Xkb->map    type[*].lvl_names[*]
XkbIndicatorNamesMask    (1<<8)    Xkb->names    indicators[*]
XkbKeyNamesMask    (1<<9)    Xkb->names    keys[*], num_keys
XkbKeyAliasesMask    (1<<10)    Xkb->names    key_aliases[*], num_key_aliases
XkbVirtualModNamesMask    (1<<11)    Xkb->names    vmods[*]
XkbGroupNamesMask    (1<<12)    Xkb->names    groups[*]
XkbRGNamesMask    (1<<13)    Xkb->names    radio_groups[*], num_rg
XkbComponentNamesMask    (0x3f)    Xkb->names    keycodes,
           physical symbols,
           types, and
           compatibility map
XkbAllNamesMask    (0x3fff)    Xkb->names    all name components

Table of Contents