Provided by: libx11-doc_1.6.9-2ubuntu1_all bug

NAME

       XkbSARedirectVMods  - Returns the vmods0 and vmods1 fields of act converted to an unsigned
       int

SYNOPSIS

       unsigned int XkbSARedirectVMods (XkbRedirectKeyAction act);

ARGUMENTS

       - act  action from which to extract vmods

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.

       XkbSARedirectVModsMask  returns  the  vmods0  and  vmods1  fields  of  act converted to an
       unsigned int.

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;