Provided by: libx11-doc_1.6.4-3ubuntu0.4_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