Provided by: libx11-doc_1.8.7-1build1_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

X v11 Rel. 6.4                                     20 Jul 1999                    XkbGetKeyExplicitComponents(3)