1XkbGetIndicatorChanges(3)        XKB FUNCTIONS       XkbGetIndicatorChanges(3)
2
3
4

NAME

6       XkbGetIndicatorChanges  - Updates a local copy of the keyboard descrip‐
7       tion with the actual values of one or more calls  to  XkbNoteIndicator‐
8       Changes
9

SYNOPSIS

11       Status XkbGetIndicatorChanges (Display *dpy, XkbDescPtr xkb, XkbIndica‐
12              torChangesPtr changes, unsigned int state);
13

ARGUMENTS

15       - dpy  connection to the X server
16
17       - xkb  keyboard description to hold the new values
18
19       - changes
20              indicator maps/state to be obtained from the server
21
22       - state
23              backfilled with the state of the indicators
24

DESCRIPTION

26       Whenever an  indicator  changes  state,  the  server  sends  XkbIndica‐
27       torStateNotify events to all interested clients. Similarly, whenever an
28       indicator's map changes, the server sends XkbIndicatorMapNotify  events
29       to all interested clients.
30
31       To  receive  XkbIndicatorStateNotify  events,  use XkbSelectEvents with
32       both the bits_to_change and values_for_bits parameters  containing  Xk‐
33       bIndicatorStateNotifyMask. To receive XkbIndicatorMapNotify events, use
34       XkbSelectEvents with XkbIndicatorMapNotifyMask.
35
36       To receive events for only specific indicators,  use  XkbSelectEventDe‐
37       tails.   Set the event_type parameter to XkbIndicatorStateNotify or Xk‐
38       bIndicatorMapNotify,  and  set  both  the   bits_to_change   and   val‐
39       ues_for_bits  detail  parameters to a mask where each bit specifies one
40       indicator, turning on those bits that specify the indicators for  which
41       you want to receive events.
42
43       Both types of indicator events use the same structure:
44
45       typedef struct _XkbIndicatorNotify {
46         int            type;       /* Xkb extension base event code */
47         unsigned long  serial;     /* X server serial number for event */
48         Bool           send_event; /* True => synthetically generated */
49         Display *      display;    /* server connection where event generated */
50         Time           time;       /* server time when event generated */
51         int            xkb_type;   /* specifies state or map notify */
52         int            device;     /* Xkb device ID, will not be XkbUseCoreKbd */
53         unsigned int   changed;    /* mask of indicators with new state or map */
54         unsigned int   state;      /* current state of all indicators */
55       } XkbIndicatorNotifyEvent;
56
57       xkb_type  is  either  XkbIndicatorStateNotify or XkbIndicatorMapNotify,
58       depending on whether the event is  a  kbIndicatorStateNotify  event  or
59       kbIndicatorMapNotify event.
60
61       The changed parameter is a mask that is the bitwise inclusive OR of the
62       indicators that have changed. If the event is of type  XkbIndicatorMap‐
63       Notify,  changed reports the maps that changed. If the event is of type
64       XkbIndicatorStateNotify,  changed  reports  the  indicators  that  have
65       changed state.  state is a mask that specifies the current state of all
66       indicators, whether they have  changed  or  not,  for  both  XkbIndica‐
67       torStateNotify and IndicatorMapNotify events.
68
69       When  your client application receives either a XkbIndicatorStateNotify
70       event or XkbIndicatorMapNotify event, you can note  the  changes  in  a
71       changes structure by calling XkbNoteIndicatorChanges.
72
73       XkbGetIndicatorChanges  examines  the changes parameter, pulls over the
74       necessary information from the server, and copies the results into  the
75       xkb  keyboard  description.  If  any  bits are set in the state_changes
76       field of changes, XkbGetIndicatorChanges also places the state of those
77       indicators  in  state.   If  the  indicators  field of xkb is NULL, Xk‐
78       bGetIndicatorChanges allocates and initializes it. To free the  indica‐
79       tors field, use XkbFreeIndicators.
80

DIAGNOSTICS

82       BadAlloc       Unable to allocate storage
83
84       BadImplementation
85                      Invalid reply from server
86
87       BadMatch       A  compatible  version  of  Xkb was not available in the
88                      server or an argument has correct type and range, but is
89                      otherwise invalid
90

SEE ALSO

92       XkbFreeIndicators(3),    XkbGetIndicatorChanges(3),   XkbNoteIndicator‐
93       Changes(3), XkbSelectEvents(3), XkbSelectEventDetail(3)
94
95
96
97
98
99
100X Version 11                     libX11 1.7.2        XkbGetIndicatorChanges(3)
Impressum