Provided by: libx11-doc_1.8.6-1ubuntu1_all bug

NAME

       XkbSARedirectSetVModsMask - Sets the vmods_mask0 and vmods_mask1 fields of act from vm

SYNOPSIS

       void XkbSARedirectSetVModsMask (XkbRedirectKeyAction act, unsigned int vm);

ARGUMENTS

       act    action in which to set vmods

       vm     new value for virtual modifier mask

DESCRIPTION

       Actions   associated   with  the  XkbRedirectKeyAction  structure  generate  KeyPress  and
       KeyRelease events containing a  keycode  different  from  the  key  that  was  pressed  or
       released.

       The  type field for the XkbRedirectKeyAction structure should always be XkbSA_RedirectKey.
       Key presses cause a KeyPress event for the key specified by the new_key field  instead  of
       the  actual  key. The state reported in this event reports the current effective modifiers
       changed as follows: any real  modifiers  selected  by  the  mods_mask  field  are  set  to
       corresponding  values  from  the  mods  field.  Any  real  modifiers  bound to the virtual
       modifiers specified by the vmods_mask0 and vmods_mask1 fields are either set  or  cleared,
       depending  on  the  corresponding  values in the vmods0 and vmods1 fields. If the real and
       virtual modifier definitions specify conflicting values for a single  modifier,  the  real
       modifier definition has priority.

       Key  releases  cause a KeyRelease event for the key specified by the new_key field instead
       of the actual key. The state for this event consists of the effective  keyboard  modifiers
       at the time of the release, changed as described previously.

       The  XkbSA_RedirectKey  action normally redirects to another key on the same device as the
       key that caused the event, unless that device does  not  belong  to  the  input  extension
       KeyClass,  in  which  case  this  action causes an event on the core keyboard device. (The
       input extension categorizes devices by breaking them into classes.  Keyboards,  and  other
       input devices with keys, are classified as KeyClass devices by the input extension.)

       The  vmods_mask0  and  vmods_mask1  fields  actually  represent  one vmods_mask value. Xkb
       provides macros to convert between the two formats.

       XkbSARedirectSetVModsMask sets the vmods_mask0 and vmods_mask1 fields of act from vm.

STRUCTURES

           typedef struct_XkbRedirectKeyAction {
               unsigned char   type;        /* XkbSA_RedirectKey */
               unsigned char   new_key;     /* keycode to be put in event */
               unsigned char   mods_mask;   /* mask of real mods to be reset */
               unsigned char   mods;        /* mask of real mods to take values from */
               unsigned char   vmods_mask0; /* first half of mask of virtual mods to be reset */
               unsigned char   vmods_mask1; /* other half of mask of virtual mods to be reset */
               unsigned char   vmods0;      /* first half of mask of virtual mods to take values from */
               unsigned char   vmods1;      /* other half of mask of virtual mods to take values from */
           } XkbRedirectKeyAction;