Provided by: libx11-doc_1.8.7-1build1_all bug

NAME

       XkbActionSetCtrls - Sets the ctrls0 through ctrls3 fields of act from ctrls

SYNOPSIS


       void XkbActionSetCtrls (XkbCtrlsAction act, unsigned int ctrls);

ARGUMENTS

       act    action in which to set ctrls0-ctrls3

       ctrls  value to set in ctrls0-ctrls3

DESCRIPTION

       Actions associated with the XkbCtrlsAction structure change the state of the boolean controls.

       The type field can have any one of the values shown in Table 1.

                       Table 1 Controls Action Types
       ──────────────────────────────────────────────────────────────
       Type                 Effect
       ──────────────────────────────────────────────────────────────
       XkbSA_SetControls    A key press enables any boolean controls
                            specified  in the ctrls fields that were
                            not already enabled at the time  of  the
                            key  press.   A key release disables any
                            controls enabled by the key press.  This
                            action   can   cause   XkbControlsNotify
                            events.
       XkbSA_LockControls   If  the  XkbSA_LockNoLock bit is not set
                            in the flags field, a key press  enables
                            any  controls  specified  in  the  ctrls
                            fields that were not already enabled  at
                            the time of the key press.
                            If the XkbSA_LockNoUnlock bit is not set
                            in   the  flags  field,  a  key  release
                            disables any controls specified  in  the
                            ctrls   fields  that  were  not  already
                            disabled at the time of the key press.
                            This action can cause  XkbControlsNotify
                            events.

       The flags field is composed of the bitwise inclusive OR of the masks shown in Table 2.

                       Table 2 Control Action Flags
       ──────────────────────────────────────────────────────────────
       Flag                 Meaning
       ──────────────────────────────────────────────────────────────
       XkbSA_LockNoLock     If   set,   and   the   action  type  is
                            XkbSA_LockControls,  the   server   only
                            disables controls.
       XkbSA_LockNoUnlock   If   set,   and   the   action  type  is
                            XkbSA_LockControls,  the   server   only
                            enables controls.

       The XkbSA_SetControls action implements a key that enables a boolean control when pressed and disables it
       when  released.  The  XkbSA_LockControls  action  is  used to implement a key that toggles the state of a
       boolean control each time it is pressed and released. The XkbSA_LockNoLock and  XkbSA_LockNoUnlock  flags
       allow modifying the toggling behavior to only unlock or only lock the boolean control.

       The  ctrls0,  ctrls1, ctrls2, and ctrls3 fields represent the boolean controls in the enabled_ctrls field
       of the controls structure. Xkb macros, to convert between the two formats.

       XkbActionSetCtrls sets the ctrls0 through ctrls3 fields of act from ctrls.

STRUCTURES

           typedef struct _XkbCtrlsAction {
               unsigned char    type;    /* XkbSA_SetControls, XkbSA_LockControls */
               unsigned char    flags;   /* with type, controls enabling and disabling of controls */
               unsigned char    ctrls3;  /* ctrls0 through ctrls3 represent the boolean controls */
               unsigned char    ctrls2;  /* ctrls0 through ctrls3 represent the boolean controls */
               unsigned char    ctrls1;  /* ctrls0 through ctrls3 represent the boolean controls */
               unsigned char    ctrls0;  /* ctrls0 through ctrls3 represent the boolean controls */
           } XkbCtrlsAction;

X Version 11                                      libX11 1.8.7                              XkbActionSetCtrls(3)