XkbResizeDeviceButtonActions(3) XKB FUNCTIONS XkbResizeDeviceButtonActions(3)

# [NAME](#NAME)

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

# [SYNOPSIS](#SYNOPSIS)

**Status XkbResizeDeviceButtonActions** **(XkbDeviceInfoPtr device\_info,** **unsigned int new\_total);**

# [ARGUMENTS](#ARGUMENTS)

[*device\_info*](#device_info)

structure in which to allocate button actions

[*new\_total*](#new_total)

new total number of button actions needed

# [DESCRIPTION](#DESCRIPTION)

*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-&gt;num\_btns* is set to zero, and *device\_info-&gt;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.*

# [STRUCTURES](#STRUCTURES)

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;
```

# [DIAGNOSTICS](#DIAGNOSTICS)

[**BadAlloc**](#BadAlloc)

Unable to allocate storage

[**BadValue**](#BadValue)

An argument is out of range

# [SEE ALSO](#SEE_ALSO)

[**XkbFreeDeviceInfo**(3)](/man/os/libx11/XkbFreeDeviceInfo.3)

libX11 1.8.14 X Version 11

---

Document: XkbResizeDeviceButtonActions(3) from libx11 1.8.14-r1 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
