XkbResizeKeyActions (3)
Leading comments
Copyright 1999 Oracle and/or its affiliates. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following condition...
NAME
XkbResizeKeyActions - Change the number of actions bound to a keySYNOPSIS
-
XkbAction * XkbResizeKeyActions
(XkbDescRec *xkb,
int key,
int needed);
ARGUMENTS
- - xkb
-
- keyboard description to change
- - key
- keycode of key to change
- - needed
- new number of actions required
DESCRIPTION
The
xkb
parameter points to the keyboard description containing the
key
whose number of actions is to be changed. The
key
parameter is the keycode of the key to change, and needed specifies the new
number of actions required for the key.
XkbResizeKeyActions
reserves the space needed for the actions and returns a pointer to the beginning
of the new array that holds the actions. It can change the
acts, num_acts,
and
size_acts
fields of
xkb->server
if it is necessary to reallocate the
acts
array.
If
needed
is greater than the current number of keysyms for the key,
XkbResizeKeyActions
initializes all new actions in the array to NoAction.
Because the number of actions needed by a key is normally computed as width *
number of groups, and
XkbResizeKeyActions
does not modify either the width or number of groups for the key, a discrepancy
exists on return from
XkbResizeKeyActions
between the space allocated for the actions and the number required. The unused
entries in the list of actions returned by
XkbResizeKeyActions
are not preserved across future calls to any of the map editing functions, so
you must update the key actions (which updates the width and number of groups
for the key) before calling another allocator function. A call to
XkbChangeTypesOfKey
updates these.
If any allocation errors occur while resizing the number of actions bound to the
key,
XkbResizeKeyActions
returns NULL.
SEE ALSO
XkbChangeTypesOfKey(3), XkbResizeKeySyms(3)NOTES
A change to the number of actions bound to a key should be accompanied by a change in the number of symbols bound to a key. Refer to XkbResizeKeySyms for more information on changing the number of symbols bound to a key.