Provided by: libx11-doc_1.8.4-2_all bug

NAME

       XkbGetKeyExplicitComponents  -  Obtain  the explicit components (the explicit array) for a
       subset of the keys in a keyboard description

SYNOPSIS

       Status XkbGetKeyExplicitComponents (Display *dpy, unsigned int first,  unsigned  int  num,
              XkbDescPtr xkb);

ARGUMENTS

       dpy    connection to server

       first  keycode of first key to fetch

       num    number of keys for which to get explicit info

       xkb    Xkb description in which to put results

DESCRIPTION

       Whenever  a  client remaps the keyboard using core protocol requests, Xkb examines the map
       to determine likely default values for the components that cannot be specified  using  the
       core  protocol  (see Core Keyboard Mapping to Xkb Keyboard Mapping Transformation for more
       information on how Xkb chooses the default values).

       DO THE FOUR PAGES OF "CORE KEYBOARD MAPPING TO XKB KEYBOARD MAPPING  TRANSFORMATION"  NEED
       TO BE ADDED HERE?

       This automatic remapping might replace definitions explicitly requested by an application,
       so the Xkb keyboard description defines an explicit components  mask  for  each  key.  Any
       aspects  of  the  automatic remapping listed in the explicit components mask for a key are
       not changed by the automatic keyboard mapping.

       The explicit components masks are held in the explicit field of the server map,  which  is
       an  array  indexed  by  keycode.  Each  entry  in  this  array is a mask that is a bitwise
       inclusive OR of the values shown in Table 1.

                      Table 1 Explicit Component Masks
       ───────────────────────────────────────────────────────────────
       Bit in Explicit Mask   Value    Protects Against
       ───────────────────────────────────────────────────────────────
       ExplicitKeyType1       (1<<0)   Automatic determination of the
                                       key   type   associated   with
                                       Group1.
       ExplicitKeyType2       (1<<1)   Automatic determination of the
                                       key   type   associated   with
                                       Group2.
       ExplicitKeyType3       (1<<2)   Automatic determination of the
                                       key   type   associated   with
                                       Group3.
       ExplicitKeyType4       (1<<3)   Automatic determination of the
                                       key   type   associated   with
                                       Group4.
       ExplicitInterpret      (1<<4)   Application  of  any  of   the
                                       fields     of     a     symbol
                                       interpretation to the  key  in
                                       question.
       ExplicitAutoRepeat     (1<<5)   Automatic   determination   of
                                       auto-repeat  status  for   the
                                       key,  as specified in a symbol
                                       interpretation.

       ExplicitBehavior       (1<<6)   Automatic  assignment  of  the
                                       XkbKB_Lock   behavior  to  the
                                       key, if  the  XkbSI_LockingKey
                                       flag   is   set  in  a  symbol
                                       interpretation.
       ExplicitVModMap        (1<<7)   Automatic determination of the
                                       virtual  modifier  map for the
                                       key  based  on   the   actions
                                       assigned  to  the  key and the
                                       symbol  interpretations   that
                                       match the key.

       XkbGetKeyExplicitComponents  sends  a  request  to  the  server  to  obtain  the  explicit
       components for num keys on the keyboard starting with key first.  It waits for a reply and
       returns  the  explicit  components  in  the server->explicit array of xkb.  If successful,
       XkbGetKeyExplicitComponents returns Success. The xkb parameter must  be  a  pointer  to  a
       valid Xkb keyboard description.

       If the server map in the xkb parameter has not been allocated, XkbGetKeyExplicitComponents
       allocates and initializes it before obtaining the actions.

       If the server does not have a compatible version of Xkb, or the Xkb extension has not been
       properly  initialized, XkbGetKeyExplicitComponents returns BadMatch. If num is less than 1
       or greater than  XkbMaxKeyCount,  XkbGetKeyExplicitComponents  returns  BadValue.  If  any
       allocation errors occur, XkbGetKeyExplicitComponents returns BadAlloc.

DIAGNOSTICS

       BadAlloc       Unable to allocate storage

       BadMatch       A  compatible version of Xkb was not available in the server or an argument
                      has correct type and range, but is otherwise invalid

       BadValue       An argument is out of range