XkbResizeDeviceButtonActions man page

XkbResizeDeviceButtonActions — Allocate additional space for button actions in an XkbDeviceInfoRec structure


Status XkbResizeDeviceButtonActions (XkbDeviceInfoPtr device_info, unsigned int new_total);


- device_info
structure in which to allocate button actions
- new_total
new total number of button actions needed


XkbResizeDeviceButtonActions reallocates space, if necessary, to make sure there is room for a total of new_total button actions in the device_info structure. Any new entries allocated are zeroed. If successful, XkbResizeDeviceButtonActions returns Success. If new_total is zero, all button actions are deleted, device_info->num_btns is set to zero, and device_info->btn_acts is set to NULL. If device_info is invalid or new_total is greater than 255, BadValue is returned. If a memory allocation failure occurs, a BadAlloc is returned.

To free an XkbDeviceInfoRec structure, use XkbFreeDeviceInfo.


Information about X Input Extension devices is transferred between a client program and the Xkb extension in an XkbDeviceInfoRec structure:

typedef struct {
    char *               name;          /∗ name for device */
    Atom                 type;          /∗ name for class of devices */
    unsigned short       device_spec;   /∗ device of interest */
    Bool                 has_own_state; /∗ True=>this device has its own state */
    unsigned short       supported;     /∗ bits indicating supported capabilities */
    unsigned short       unsupported;   /∗ bits indicating unsupported capabilities */
    unsigned short       num_btns;      /∗ number of entries in btn_acts */
    XkbAction *          btn_acts;      /∗ button actions */
    unsigned short       sz_leds;       /∗ total number of entries in LEDs vector */
    unsigned short       num_leds;      /∗ number of valid entries in LEDs vector */
    unsigned short       dflt_kbd_fb;   /∗ input extension ID of default (core kbd) indicator */
    unsigned short       dflt_led_fb;   /∗ input extension ID of default indicator feedback */
    XkbDeviceLedInfoPtr  leds;          /∗ LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;


Unable to allocate storage
An argument is out of range

See Also


Referenced By


libX11 1.6.4 X Version 11 XKB FUNCTIONS