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)