Provided by: libx11-doc_1.6.9-2ubuntu1.6_all bug

NAME

       XkbSelectEventDetails  -   Selects  or  deselects  for a specific Xkb event and optionally
       places conditions on when events of that type are reported to your client

SYNOPSIS

       Bool XkbSelectEventDetails (Display  *display,  unsigned  int  device_spec,  unsigned  int
              event_type, unsigned long int bits_to_change, unsigned long int values_for_bits);

ARGUMENTS

       display
              connection to the X server

       device_spec
              device ID, or XkbUseCoreKbd

       event_type
              Xkb event type of interest

       bits_to_change
              determines events to be selected / deselected

       values_for_bits
              1=>select, 0->deselect; for events in bits_to_change

DESCRIPTION

       Xkb  events  are  selected  using an event mask, much the same as normal core X events are
       selected. However, unlike selecting core X events, where you must  specify  the  selection
       status  (on or off) for all possible event types whenever you wish to change the selection
       criteria for any one event, Xkb allows you to restrict the specification to only the event
       types  you wish to change. This means that you do not need to remember the event selection
       values for all possible types each time you want to change one of them.

       Many Xkb event types are generated under several different circumstances.  When  selecting
       to  receive  an  Xkb  event,  you  may specify either that you want it delivered under all
       circumstances, or  that  you  want  it  delivered  only  for  a  subset  of  the  possible
       circumstances.

       You  can  also  deselect  an  event  type that was previously selected for, using the same
       granularity.

       Xkb provides two functions to select and deselect delivery of Xkb events.  XkbSelectEvents
       allows  you to select or deselect delivery of more than one Xkb event type at once. Events
       selected using XkbSelectEvents are delivered to your program under all circumstances  that
       generate the events.  To restrict delivery of an event to a subset of the conditions under
       which it occurs, use  XkbSelectEventDetails.  XkbSelectEventDetails  only  allows  you  to
       change  the  selection conditions for a single event at a time, but it provides a means of
       fine-tuning the conditions under which the event is delivered.

       To select or deselect for a specific Xkb event and optionally  place  conditions  on  when
       events  of  that type are reported to your client, use XkbSelectEventDetails.  This allows
       you to exercise  a  finer  granularity  of  control  over  delivery  of  Xkb  events  with
       XkbSelectEvents.

       While XkbSelectEvents allows multiple events to be selected, XkbSelectEventDetails changes
       the selection criteria for  a  single  type  of  Xkb  event.  The  interpretation  of  the
       bits_to_change and values_for_bits masks depends on the event type in question.

       XkbSelectEventDetails  changes  the Xkb event selection mask for the keyboard specified by
       device_spec and the Xkb event specified by event_type.  To turn on event selection for  an
       event  detail,  set  the  bit  for  the detail in the bits_to_change parameter and set the
       corresponding bit in the values_for_bits parameter. To turn off event detail selection for
       a  detail,  set  the bit for the detail in the bits_to_change parameter and do not set the
       corresponding bit in the values_for_bits parameter.

       If an invalid event type is specified, a BadValue protocol error results. If a bit is  not
       set   in   the  bits_to_change  parameter,  but  the  corresponding  bit  is  set  in  the
       values_for_bits parameter, a BadMatch protocol error results. If an undefined bit  is  set
       in  either  the bits_to_change or the values_for_bits parameter, a BadValue protocol error
       results.

       For each type of Xkb  event,  the  legal  event  details  that  you  can  specify  in  the
       XkbSelectEventDetails  request  are  listed  in  the  chapters that describe each event in
       detail.

DIAGNOSTICS

       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

SEE ALSO

       XkbSelectEvents(3), XkbUseCoreKbd(3)