diff --git a/specs/XKB/ch02.xml b/specs/XKB/ch02.xml
index eda28ec2..fffb3e8d 100644
--- a/specs/XKB/ch02.xml
+++ b/specs/XKB/ch02.xml
@@ -56,10 +56,10 @@ keyboard geometry descriptions.
The name of the Xkb extension is given in
<X11/extensions/Xkb.h>:
-
-
-#define XkbName "XKEYBOARD"
+
+#define XkbName "XKEYBOARD"
+
diff --git a/specs/XKB/ch03.xml b/specs/XKB/ch03.xml
index 5789f88a..2981e9a2 100644
--- a/specs/XKB/ch03.xml
+++ b/specs/XKB/ch03.xml
@@ -113,13 +113,11 @@ function expands the array if necessary.
For example, call:
-
-
+
XkbAllocGeomShapes(geom,4)
-
+
-
to say I’ll need space for four new shapes in this geometry.
This makes sure that
sz_shapes
diff --git a/specs/XKB/ch04.xml b/specs/XKB/ch04.xml
index 38db9142..fb4ab495 100644
--- a/specs/XKB/ch04.xml
+++ b/specs/XKB/ch04.xml
@@ -167,21 +167,17 @@ in the same fields at the beginning of all Xkb event structures and are
described in the
XkbAnyEvent
structure:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event
-generated */
- Time time; /* server time when event generated */
- int xkb_type; /* Xkb minor event code */
- unsigned int device; /* Xkb device ID, will not be
- XkbUseCoreKbd */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* Xkb minor event code */
+ unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
} XkbAnyEvent;
-
@@ -719,8 +715,8 @@ every reference. For example, to get the next event, you can simply declare a
variable of type
XkbEvent
and call:
-
-XNextEvent(dpy,&xkbev.core);
+XNextEvent(dpy,&xkbev.core);
+
diff --git a/specs/XKB/ch05.xml b/specs/XKB/ch05.xml
index b91e9040..afb8ae21 100644
--- a/specs/XKB/ch05.xml
+++ b/specs/XKB/ch05.xml
@@ -725,27 +725,27 @@ To latch the keysym group, use
Xkb keyboard state may be represented in an
XkbStateRec
structure:
-
-
+
typedef struct {
- unsigned char group; /* effective group index */
- unsigned char base_group; /* base group index */
- unsigned char latched_group; /* latched group index */
- unsigned char locked_group; /* locked group index */
- unsigned char mods; /* effective modifiers */
- unsigned char base_mods; /* base modifiers */
- unsigned char latched_mods; /* latched modifiers */
- unsigned char locked_mods; /* locked modifiers */
- unsigned char compat_state; /* effective group ⇒ modifiers */
- unsigned char grab_mods; /* modifiers used for grabs */
- unsigned char compat_grab_mods; /* mods used for compatibility mode grabs */
- unsigned char lookup_mods; /* modifiers used to lookup symbols */
- unsigned char compat_lookup_mods; /* mods used for compatibility lookup */
- unsigned short ptr_buttons; /* 1 bit ⇒ corresponding pointer btn is down */
-}
-XkbStateRec,
-*XkbStatePtr;
+ unsigned char group; /* effective group index */
+ unsigned char base_group; /* base group index */
+ unsigned char latched_group; /* latched group index */
+ unsigned char locked_group; /* locked group index */
+ unsigned char mods; /* effective modifiers */
+ unsigned char base_mods; /* base modifiers */
+ unsigned char latched_mods; /* latched modifiers */
+ unsigned char locked_mods; /* locked modifiers */
+ unsigned char compat_state; /* effective group ⇒ modifiers */
+ unsigned char grab_mods; /* modifiers used for grabs */
+ unsigned char compat_grab_mods; /* mods used for compatibility
+ mode grabs */
+ unsigned char lookup_mods; /* mods used to lookup symbols */
+ unsigned char compat_lookup_mods; /* mods used for compatibility
+ lookup */
+ unsigned short ptr_buttons; /* 1 bit ⇒ corresponding
+ pointer btn is down */
+} XkbStateRec, *XkbStatePtr;
@@ -957,39 +957,41 @@ To receive
The structure for
XkbStateNotify
events is:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbStateNotify */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- unsigned int changed; /* bits indicating what has changed */
- int group; /* group index of effective group */
- int base_group; /* group index of base group */
- int latched_group; /* group index of latched group */
- int locked_group; /* group index of locked group */
- unsigned int mods; /* effective modifiers */
- unsigned int base_mods; /* base modifiers */
- unsigned int latched_mods; /* latched modifiers */
- unsigned int locked_mods; /* locked modifiers */
- int compat_state; /* computed compatibility state */
- unsigned char grab_mods; /* modifiers used for grabs */
- unsigned char compat_grab_mods; /* modifiers used for compatibility grabs */
- unsigned char lookup_mods; /* modifiers used to lookup symbols */
- unsigned char compat_lookup_mods; /* mods used for compatibility look up */
- int ptr_buttons; /* core pointer buttons */
- KeyCode keycode; /* keycode causing event, 0 if programmatic */
- char event_type; /* core event if req_major or
- req_minor non zero */
- char req_major; /* major request code if program trigger, else 0 */
- char req_minor; /* minor request code if program trigger, else 0 */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbStateNotify */
+ int device; /* Xkb device ID,
+ will not be XkbUseCoreKbd */
+ unsigned int changed; /* bits indicating what has changed */
+ int group; /* group index of effective group */
+ int base_group; /* group index of base group */
+ int latched_group; /* group index of latched group */
+ int locked_group; /* group index of locked group */
+ unsigned int mods; /* effective modifiers */
+ unsigned int base_mods; /* base modifiers */
+ unsigned int latched_mods; /* latched modifiers */
+ unsigned int locked_mods; /* locked modifiers */
+ int compat_state; /* computed compatibility state */
+ unsigned char grab_mods; /* modifiers used for grabs */
+ unsigned char compat_grab_mods; /* modifiers used for compatibility grabs */
+ unsigned char lookup_mods; /* modifiers used to lookup symbols */
+ unsigned char compat_lookup_mods; /* mods used for compatibility look up */
+ int ptr_buttons; /* core pointer buttons */
+ KeyCode keycode; /* keycode causing event,
+ 0 if programmatic */
+ char event_type; /* core event if req_major or req_minor
+ non zero */
+ char req_major; /* major request code if program trigger,
+ else 0 */
+ char req_minor; /* minor request code if program trigger,
+ else 0 */
} XkbStateNotifyEvent;
-
diff --git a/specs/XKB/ch06.xml b/specs/XKB/ch06.xml
index 1ecbcfb1..67499e5a 100644
--- a/specs/XKB/ch06.xml
+++ b/specs/XKB/ch06.xml
@@ -24,30 +24,19 @@ The component structures in the
typedef struct {
- struct _XDisplay * display; /* connection to
-X server */
- unsigned short flags; /* private to Xkb, do
-not modify */
- unsigned short device_spec; /* device of
-interest */
- KeyCode min_key_code; /* minimum keycode for
-device */
- KeyCode max_key_code; /* maximum keycode for
-device */
- XkbControlsPtr ctrls; /* controls */
- XkbServerMapPtr server; /* server keymap */
- XkbClientMapPtr map; /* client keymap */
- XkbIndicatorPtr indicators; /* indicator map
-*/
- XkbNamesPtr names; /* names for all
-components */
- XkbCompatMapPtr compat; /* compatibility map
-*/
- XkbGeometryPtr geom; /* physical geometry of
-keyboard */
-}
-XkbDescRec,
-*XkbDescPtr;
+ struct _XDisplay * display; /* connection to X server */
+ unsigned short flags; /* private to Xkb, do not modify */
+ unsigned short device_spec; /* device of interest */
+ KeyCode min_key_code; /* minimum keycode for device */
+ KeyCode max_key_code; /* maximum keycode for device */
+ XkbControlsPtr ctrls; /* controls */
+ XkbServerMapPtr server; /* server keymap */
+ XkbClientMapPtr map; /* client keymap */
+ XkbIndicatorPtr indicators; /* indicator map */
+ XkbNamesPtr names; /* names for all components */
+ XkbCompatMapPtr compat; /* compatibility map */
+ XkbGeometryPtr geom; /* physical geometry of keyboard */
+} XkbDescRec, *XkbDescPtr;
diff --git a/specs/XKB/ch07.xml b/specs/XKB/ch07.xml
index 25ce585e..238c5494 100644
--- a/specs/XKB/ch07.xml
+++ b/specs/XKB/ch07.xml
@@ -131,13 +131,10 @@ entity such as an indicator map, a control, or a key type. (See
typedef struct _XkbMods {
- unsigned char mask; /* real_mods | vmods mapped to
-real modifiers */
- unsigned char real_mods; /* real modifier bits */
- unsigned short vmods; /* virtual modifier bits */
-}
-XkbModsRec,
-*XkbModsPtr;
+ unsigned char mask; /* real_mods | vmods mapped to real modifiers */
+ unsigned char real_mods; /* real modifier bits */
+ unsigned short vmods; /* virtual modifier bits */
+} XkbModsRec, *XkbModsPtr;
diff --git a/specs/XKB/ch08.xml b/specs/XKB/ch08.xml
index 08ae32b1..a83b251b 100644
--- a/specs/XKB/ch08.xml
+++ b/specs/XKB/ch08.xml
@@ -87,16 +87,14 @@ The description for all the Xkb indicators is held in the
indicators
field of the complete keyboard description (see ), which is defined
as follows:
-
-
+
#define XkbNumIndicators 32
-
-
+
typedef struct {
- unsigned long phys_indicators; /* LEDs existence */
- XkbIndicatorMapRec maps[XkbNumIndicators]; /* indicator maps */
-} XkbIndicatorRec,*XkbIndicatorPtr;
+ unsigned long phys_indicators; /* LEDs existence */
+ XkbIndicatorMapRec maps[XkbNumIndicators]; /* indicator maps */
+} XkbIndicatorRec, *XkbIndicatorPtr;
@@ -144,16 +142,15 @@ attributes of each indicator are held in the
array, which is an array of
XkbIndicatorRec
structures:
-
-
+
typedef struct {
- unsigned char flags; /* how the indicator can be changed */
- unsigned char which_groups; /* match criteria for groups */
- unsigned char groups; /* which keyboard groups the indicator watches */
- unsigned char which_mods; /* match criteria for modifiers */
- XkbModsRec mods; /* which modifiers the indicator watches */
- unsigned int ctrls; /* which controls the indicator watches */
+ unsigned char flags; /* how the indicator can be changed */
+ unsigned char which_groups; /* match criteria for groups */
+ unsigned char groups; /* which keyboard groups the indicator watches */
+ unsigned char which_mods; /* match criteria for modifiers */
+ XkbModsRec mods; /* which modifiers the indicator watches */
+ unsigned int ctrls; /* which controls the indicator watches */
} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
@@ -322,9 +319,8 @@ corresponding indicator. The
field controls the interpretation of
groups
and may contain any one of the following values:
-
-
+
#define XkbIM_UseNone 0
#define XkbIM_UseBase (1L << 0)
#define XkbIM_UseLatched (1L << 1)
@@ -339,9 +335,8 @@ The
groups
field specifies what keyboard groups an indicator watches and is the bitwise
inclusive OR of the following valid values:
-
-
+
#define XkbGroup1Mask (1<<0)
#define XkbGroup2Mask (1<<1)
#define XkbGroup3Mask (1<<2)
@@ -581,9 +576,8 @@ the definition. (See for more information on t
for more information on virtual modifiers.) Use a bitwise inclusive
OR of the following values to compose a value for
which_mods:
-
-
+
#define XkbIM_UseNone 0
#define XkbIM_UseBase (1L << 0)
#define XkbIM_UseLatched (1L << 1)
@@ -800,9 +794,8 @@ The
ctrls
field specifies what controls (see ) the indicator watches and is
composed using the bitwise inclusive OR of the following values:
-
-
+
#define XkbRepeatKeysMask (1L << 0)
#define XkbSlowKeysMask (1L << 1)
#define XkbBounceKeysMask (1L << 2)
@@ -1609,10 +1602,9 @@ The
typedef struct _XkbIndicatorChanges {
- unsigned int state_changes;
- unsigned int map_changes;
-}
-XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
+ unsigned int state_changes;
+ unsigned int map_changes;
+} XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
@@ -1777,19 +1769,18 @@ those bits that specify the indicators for which you want to receive events.
Both types of indicator events use the same structure:
-
-
+
typedef struct _XkbIndicatorNotify {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* specifies state or map notify */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- unsigned int changed; /* mask of indicators with new state or map */
- unsigned int state; /* current state of all indicators */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* specifies state or map notify */
+ int device; /* Xkb device ID, will not be XkbUseCoreKbd */
+ unsigned int changed; /* mask of indicators with new state or map */
+ unsigned int state; /* current state of all indicators */
} XkbIndicatorNotifyEvent;
diff --git a/specs/XKB/ch09.xml b/specs/XKB/ch09.xml
index 802c8c79..b66357a9 100644
--- a/specs/XKB/ch09.xml
+++ b/specs/XKB/ch09.xml
@@ -1113,25 +1113,24 @@ can call
The structure for the
XkbBellNotify
event type contains:
-
-
+
typedef struct _XkbBellNotify {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbBellNotify */
- unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- int percent; /* requested volume as % of max */
- int pitch; /* requested pitch in Hz */
- int duration; /* requested duration in microseconds */
- unsigned int bell_class; /* X input extension feedback class */
- unsigned int bell_id; /* X input extension feedback ID */
- Atom name; /* "name" of requested bell */
- Window window; /* window associated with event */
- Bool event_only; /* False → the server did not produce a beep */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbBellNotify */
+ unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
+ int percent; /* requested volume as % of max */
+ int pitch; /* requested pitch in Hz */
+ int duration; /* requested duration in microseconds */
+ unsigned int bell_class; /* X input extension feedback class */
+ unsigned int bell_id; /* X input extension feedback ID */
+ Atom name; /* "name" of requested bell */
+ Window window; /* window associated with event */
+ Bool event_only; /* False → the server did not produce a beep */
} XkbBellNotifyEvent;
diff --git a/specs/XKB/ch10.xml b/specs/XKB/ch10.xml
index 7f43e1de..ffaf24c0 100644
--- a/specs/XKB/ch10.xml
+++ b/specs/XKB/ch10.xml
@@ -556,41 +556,37 @@ the control is configured to not reset when the client exits. For example:
To leave the auto-reset controls for
StickyKeys
the way they are:
-
-
-ok = XkbSetAutoResetControls(dpy, 0, 0, 0);
+
+ ok = XkbSetAutoResetControls(dpy, 0, 0, 0);
To change the auto-reset controls so that
StickyKeys
are unaffected when the client exits:
-
-
-ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, 0, 0);
+
+ ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, 0, 0);
To change the auto-reset controls so that
StickyKeys
are turned off when the client exits:
-
-
-ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, XkbStickyKeysMask, 0);
+
+ ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, XkbStickyKeysMask, 0);
To change the auto-reset controls so that
StickyKeys
are turned on when the client exits:
-
-
-ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, XkbStickyKeysMask,
-XkbStickyKeysMask);
+
+ ok = XkbSetAutoResetControls(dpy, XkbStickyKeysMask, XkbStickyKeysMask,
+ XkbStickyKeysMask);
@@ -2032,21 +2028,20 @@ The server can generate
events for some of the global keyboard controls. The structure for the
XkbAccessXNotify
event type is as follows:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbAccessXNotify */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- int detail; /* XkbAXN_* */
- KeyCode keycode; /* key of event */
- int slowKeysDelay; /* current SlowKeys delay */
- int debounceDelay; /* current debounce delay */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbAccessXNotify */
+ int device; /* Xkb device ID, will not be XkbUseCoreKbd */
+ int detail; /* XkbAXN_* */
+ KeyCode keycode; /* key of event */
+ int slowKeysDelay; /* current SlowKeys delay */
+ int debounceDelay; /* current debounce delay */
} XkbAccessXNotifyEvent;
@@ -2814,13 +2809,11 @@ with a mask indicating whether the individual
options are on or off. Valid bits in
options_rtrn
are:
-
-
-
- XkbAX_TwoKeysMask
- XkbAX_LatchToLockMask
-
+
+ XkbAX_TwoKeysMask
+ XkbAX_LatchToLockMask
+
@@ -2913,13 +2906,11 @@ The valid bits to use for both the
and
values
parameters are:
-
-
-
- XkbAX_TwoKeysMask
- XkbAX_LatchToLockMask
-
+
+ XkbAX_TwoKeysMask
+ XkbAX_LatchToLockMask
+
@@ -2939,15 +2930,13 @@ The valid bits to use for both the
There are several controls that apply to the keyboard mapping in general. They
control handling of out-of-range group indices and how modifiers are processed
and consumed in the server. These are:
-
-
-
- GroupsWrap
- IgnoreGroupLock
- IgnoreLockMods
- InternalMods
-
+
+ GroupsWrap
+ IgnoreGroupLock
+ IgnoreLockMods
+ InternalMods
+
@@ -3460,39 +3449,45 @@ convenience functions.
The
XkbControlsRec
structure is defined as follows:
-
-
#define XkbMaxLegalKeyCode 255
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
-
-
-
-
+
typedef struct {
- unsigned char mk_dflt_btn; /* default button for keyboard driven mouse */
- unsigned char num_groups; /* number of keyboard groups */
- unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
- XkbModsRec internal; /* defines server internal modifiers */
- XkbModsRec ignore_lock; /* modifiers to ignore when checking for grab */
- unsigned int enabled_ctrls; /* 1 bit ⇒ corresponding boolean control enabled */
- unsigned short repeat_delay; /* ms delay until first repeat */
- unsigned short repeat_interval; /* ms delay between repeats */
- unsigned short slow_keys_delay; /* ms minimum time key must be down to be ok */
- unsigned short debounce_delay; /* ms delay before key reactivated */
- unsigned short mk_delay; /* ms delay to second mouse motion event */
- unsigned short mk_interval; /* ms delay between repeat mouse events */
- unsigned short mk_time_to_max; /* # intervals until constant mouse move */
- unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
- short mk_curve; /* determines mouse move curve type */
- unsigned short ax_options; /* 1 bit ⇒ Access X option enabled */
- unsigned short ax_timeout; /* seconds until Access X disabled */
- unsigned short axt_opts_mask; /* 1 bit ⇒ options to reset on Access X timeout */
- unsigned short axt_opts_values; /* 1 bit ⇒ turn option on, 0⇒ off */
- unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls to modify */
- unsigned int axt_ctrls_values; /* values for new bits in enabled_ctrls */
- unsigned char per_key_repeat[XkbPerKeyBitArraySize]; /* per key auto repeat */
+ unsigned char mk_dflt_btn; /* default button for
+ keyboard driven mouse */
+ unsigned char num_groups; /* number of keyboard groups */
+ unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
+ XkbModsRec internal; /* defines server internal modifiers */
+ XkbModsRec ignore_lock; /* modifiers to ignore when
+ checking for grab */
+ unsigned int enabled_ctrls; /* 1 bit ⇒ corresponding
+ boolean control enabled */
+ unsigned short repeat_delay; /* ms delay until first repeat */
+ unsigned short repeat_interval; /* ms delay between repeats */
+ unsigned short slow_keys_delay; /* ms minimum time key must be
+ down to be ok */
+ unsigned short debounce_delay; /* ms delay before key reactivated */
+ unsigned short mk_delay; /* ms delay to second mouse
+ motion event */
+ unsigned short mk_interval; /* ms delay between repeat mouse
+ events */
+ unsigned short mk_time_to_max; /* # intervals until constant
+ mouse move */
+ unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
+ short mk_curve; /* determines mouse move curve type */
+ unsigned short ax_options; /* 1 bit ⇒ Access X option enabled */
+ unsigned short ax_timeout; /* seconds until Access X disabled */
+ unsigned short axt_opts_mask; /* 1 bit ⇒ options to reset
+ on Access X timeout */
+ unsigned short axt_opts_values; /* 1 bit ⇒ turn option on, 0⇒ off */
+ unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls
+ to modify */
+ unsigned int axt_ctrls_values; /* values for new bits in
+ enabled_ctrls */
+ unsigned char per_key_repeat[XkbPerKeyBitArraySize];
+ /* per key auto repeat */
} XkbControlsRec, *XkbControlsPtr;
@@ -4188,11 +4183,9 @@ Xkb provides a set of convenience macros for working with the
field of an
XkbControlsRec
structure:
-
-
-#define XkbAX_NeedOption
-(c,w) ((c)->ax_options&(w))
+
+#define XkbAX_NeedOption(c,w) ((c)->ax_options & (w))
@@ -4207,15 +4200,11 @@ or not. It accepts a pointer to an
ax_options
field of the controls structure is set, the macro returns the mask bit.
Otherwise, it returns zero. Thus,
-
+
+ XkbAX_NeedOption(ctlrec, XkbAX_LatchToLockMask)
+
-
-XkbAX_NeedOption(ctlrec, XkbAX_LatchToLockMask)
-
-
-
-
is nonzero if the latch to lock transition for latching keys is enabled, and
zero if it is disabled. Note that
XkbAX_NeedOption
@@ -4228,8 +4217,8 @@ operate; the
-#define XkbAX_AnyFeedback
-(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
+#define XkbAX_AnyFeedback(c) \
+ ((c)->enabled_ctrls & XkbAccessXFeedbackMask)
@@ -4247,8 +4236,8 @@ Otherwise, it returns zero.
-#define XkbAX_NeedFeedback
-(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
+#define XkbAX_NeedFeedback(c,w) \
+ (XkbAX_AnyFeedback(c) && XkbAX_NeedOption(c,w))
@@ -4615,15 +4604,16 @@ same
changes, to be propagated to the server. The
XkbControlsChangesRec
structure is defined as follows:
-
-
+
typedef struct _XkbControlsChanges {
- unsigned int changed_ctrls; /* bits indicating changed control data */
- unsigned int enabled_ctrls_changes; /* bits indicating enabled/disabled controls */
- Bool num_groups_changed; /* True if
- number of keyboard groups changed */
-} XkbControlsChangesRec,*XkbControlsChangesPtr;
+ unsigned int changed_ctrls; /* bits indicating changed
+ control data */
+ unsigned int enabled_ctrls_changes; /* bits indicating
+ enabled/disabled controls */
+ Bool num_groups_changed; /* True if number of keyboard
+ groups changed */
+} XkbControlsChangesRec, *XkbControlsChangesPtr;
@@ -4759,25 +4749,27 @@ To receive
The structure for the
XkbControlsNotify
event is defined as follows:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbCompatMapNotify */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- unsigned int changed_ctrls; /* bits indicating which controls data have changed*/
- unsigned int enabled_ctrls; /* controls currently enabled in server */
- unsigned int enabled_ctrl_changes; /* bits indicating enabled/disabled controls */
- int num_groups; /* current number of keyboard groups */
- KeyCode keycode; /* != 0 ⇒ keycode of key causing change */
- char event_type; /* Type of event causing change */
- char req_major; /* major event code of event causing change */
- char req_minor; /* minor event code of event causing change */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbCompatMapNotify */
+ int device; /* Xkb device ID,
+ will not be XkbUseCoreKbd */
+ unsigned int changed_ctrls; /* bits indicating which controls
+ data have changed */
+ unsigned int enabled_ctrls; /* controls currently enabled in server */
+ unsigned int enabled_ctrl_changes; /* bits indicating
+ enabled/disabled controls */
+ int num_groups; /* current number of keyboard groups */
+ KeyCode keycode; /* != 0 ⇒ keycode of key causing change */
+ char event_type; /* Type of event causing change */
+ char req_major; /* major event code of event causing change */
+ char req_minor; /* minor event code of event causing change */
} XkbControlsNotifyEvent;
diff --git a/specs/XKB/ch11.xml b/specs/XKB/ch11.xml
index ea0aaec2..c10ee45e 100644
--- a/specs/XKB/ch11.xml
+++ b/specs/XKB/ch11.xml
@@ -70,13 +70,13 @@ involves translating a single keycode into a string. Because these simple
lookups involve only a single keycode, all of the information needed to do the
translation is contained in the keyboard state in a single event. The controls
affecting simple string lookups are:
-
-
- ForceLatin1Lookup
- ConsumeLookupMods
- LevelOneUsesShiftAndLock
-
+
+ ForceLatin1Lookup
+ ConsumeLookupMods
+ LevelOneUsesShiftAndLock
+
+
ForceLatin1Lookup
@@ -207,13 +207,13 @@ mapping a series of keysyms to a string is known as
compose processing
The controls affecting compose processing are:
-
-
-ConsumeKeysOnComposeFail
-ComposeLED
-BeepOnComposeFail
-
+
+ ConsumeKeysOnComposeFail
+ ComposeLED
+ BeepOnComposeFail
+
+
Because different vendors have historically used different algorithms to
diff --git a/specs/XKB/ch12.xml b/specs/XKB/ch12.xml
index aaedd311..0e04779c 100644
--- a/specs/XKB/ch12.xml
+++ b/specs/XKB/ch12.xml
@@ -119,16 +119,16 @@ requesting notification of changes to the legal range of keycodes.
The following X library functions are modified by Xkb:
-
-
- XKeycodeToKeysym
- XKeysymToKeycode
- XLookupKeysym
- XLookupString
- XRefreshKeyboardMapping
- XRebindKeysym
-
+
+ XKeycodeToKeysym
+ XKeysymToKeycode
+ XLookupKeysym
+ XLookupString
+ XRefreshKeyboardMapping
+ XRebindKeysym
+
+
The implicit support for Xkb replaces a number of X library functions with
diff --git a/specs/XKB/ch13.xml b/specs/XKB/ch13.xml
index b7300f6c..ec05ad4b 100644
--- a/specs/XKB/ch13.xml
+++ b/specs/XKB/ch13.xml
@@ -672,9 +672,8 @@ while the key specified in over must not be.
To draw a representation of the keyboard, draw in the following order:
-
-
+
Draw the top-level keyboard as a rectangle, using its width and height.
For each component (section or doodad) of the top-level geometry, in priority order:
If component is a section
@@ -744,32 +743,40 @@ Xkb Geometry Data Structures (Doodads)
Xkb Geometry Data Structures (Overlays)
-->
-typedef struct _XkbGeometry { /* top-level keyboard geometry structure */
- Atom name; /* keyboard name */
- unsigned short width_mm; /* keyboard width in mm / 10 */
- unsigned short height_mm; /* keyboard height in mm / 10 */
- char * label_font; /* font for key labels */
- XkbColorPtr label_color; /* color for key labels - pointer into colors array */
- XkbColorPtr base_color; /* color for basic keyboard - pointer into colors array */
- unsigned short sz_properties; /* size of properties array */
- unsigned short sz_colors; /* size of colors array */
- unsigned short sz_shapes; /* size of shapes array */
- unsigned short sz_sections; /* size of sections array */
- unsigned short sz_doodads; /* size of doodads array */
- unsigned short sz_key_aliases; /* size of key aliases array */
- unsigned short num_properties; /* number of properties in the properties array */
- unsigned short num_colors; /* number of colors in the colors array */
- unsigned short num_shapes; /* number of shapes in the shapes array */
- unsigned short num_sections; /* number of sections in the sections array */
- unsigned short num_doodads; /* number of doodads in the doodads array */
- unsigned short num_key_aliases; /* number of key aliases in the key */
- XkbPropertyPtr properties; /* properties array */
- XkbColorPtr colors; /* colors array */
- XkbShapePtr shapes; /* shapes array */
- XkbSectionPtr sections; /* sections array */
- XkbDoodadPtr doodads; /* doodads array */
- XkbKeyAliasPtr key_aliases; /* key aliases array */
-} XkbGeometryRec*XkbGeometryPtr;
+typedef struct _XkbGeometry { /* top-level keyboard geometry structure */
+ Atom name; /* keyboard name */
+ unsigned short width_mm; /* keyboard width in mm / 10 */
+ unsigned short height_mm; /* keyboard height in mm / 10 */
+ char * label_font; /* font for key labels */
+ XkbColorPtr label_color; /* color for key labels
+ - pointer into colors array */
+ XkbColorPtr base_color; /* color for basic keyboard
+ - pointer into colors array */
+ unsigned short sz_properties; /* size of properties array */
+ unsigned short sz_colors; /* size of colors array */
+ unsigned short sz_shapes; /* size of shapes array */
+ unsigned short sz_sections; /* size of sections array */
+ unsigned short sz_doodads; /* size of doodads array */
+ unsigned short sz_key_aliases; /* size of key aliases array */
+ unsigned short num_properties; /* number of properties in the
+ properties array */
+ unsigned short num_colors; /* number of colors in the
+ colors array */
+ unsigned short num_shapes; /* number of shapes in the
+ shapes array */
+ unsigned short num_sections; /* number of sections in the
+ sections array */
+ unsigned short num_doodads; /* number of doodads in the
+ doodads array */
+ unsigned short num_key_aliases; /* number of key aliases in the
+ key_aliases array */
+ XkbPropertyPtr properties; /* properties array */
+ XkbColorPtr colors; /* colors array */
+ XkbShapePtr shapes; /* shapes array */
+ XkbSectionPtr sections; /* sections array */
+ XkbDoodadPtr doodads; /* doodads array */
+ XkbKeyAliasPtr key_aliases; /* key aliases array */
+} XkbGeometryRec, *XkbGeometryPtr;
@@ -787,59 +794,62 @@ keyboard description.
typedef struct _XkbProperty {
- char * name; /* property name */
- char * value; /* property value */
-} XkbPropertyRec,*XkbPropertyPtr;
+ char * name; /* property name */
+ char * value; /* property value */
+} XkbPropertyRec, *XkbPropertyPtr;
typedef struct _XkbColor {
- unsigned int pixel; /* color */
- char * spec; /* color name */
-} XkbColorRec,*XkbColorPtr;
+ unsigned int pixel; /* color */
+ char * spec; /* color name */
+} XkbColorRec, *XkbColorPtr;
typedef struct _XkbKeyAliasRec {
- char real[XkbKeyNameLength]; /* real name of the key */
- char alias[XkbKeyNameLength]; /* alias for the key */
-} XkbKeyAliasRec,*XkbKeyAliasPtr;
+ char real[XkbKeyNameLength]; /* real name of the key */
+ char alias[XkbKeyNameLength]; /* alias for the key */
+} XkbKeyAliasRec, *XkbKeyAliasPtr;
-typedef struct _XkbPoint { /* x,y coordinates */
- short x;
- short y;
+typedef struct _XkbPoint { /* x, y coordinates */
+ short x;
+ short y;
} XkbPointRec, *XkbPointPtr;
typedef struct _XkbOutline {
- unsigned short num_points; /* number of points in the outline */
- unsigned short sz_points; /* size of the points array */
- unsigned short corner_radius; /* draw corners as circles with this radius */
- XkbPointPtr points; /* array of points defining the outline */
+ unsigned short num_points; /* number of points in the outline */
+ unsigned short sz_points; /* size of the points array */
+ unsigned short corner_radius; /* draw corners as circles
+ with this radius */
+ XkbPointPtr points; /* array of points defining
+ the outline */
} XkbOutlineRec, *XkbOutlinePtr;
typedef struct _XkbBounds {
- short x1,y1; /* upper left corner of the bounds,
- in mm/10 */
- short x2,y2; /* lower right corner of the bounds, in
- mm/10 */
+ short x1, y1; /* upper left corner of the bounds, in mm/10 */
+ short x2, y2; /* lower right corner of the bounds, in mm/10 */
} XkbBoundsRec, *XkbBoundsPtr;
typedef struct _XkbShape {
- Atom name; /* shape’s name */
- unsigned short num_outlines; /* number of outlines for the shape */
- unsigned short sz_outlines; /* size of the outlines array */
- XkbOutlinePtr outlines; /* array of outlines for the shape */
- XkbOutlinePtr approx; /* pointer into the array to the approximating outline */
- XkbOutlinePtr primary; /* pointer into the array to the primary outline */
- XkbBoundsRec bounds; /* bounding box for the shape; encompasses all outlines */
+ Atom name; /* shape’s name */
+ unsigned short num_outlines; /* number of outlines for the shape */
+ unsigned short sz_outlines; /* size of the outlines array */
+ XkbOutlinePtr outlines; /* array of outlines for the shape */
+ XkbOutlinePtr approx; /* pointer into the array to the
+ approximating outline */
+ XkbOutlinePtr primary; /* pointer into the array to the
+ primary outline */
+ XkbBoundsRec bounds; /* bounding box for the shape;
+ encompasses all outlines */
} XkbShapeRec, *XkbShapePtr;
@@ -855,24 +865,26 @@ in the outlines array, as is the default approximating outline.
-typedef struct _XkbKey { /* key in a row */
- XkbKeyNameRec name; /* key name */
- short gap; /* gap in mm/10 from previous key in row */
- unsigned char shape_ndx; /* index of shape for key */
- unsigned char color_ndx; /* index of color for key body */
+typedef struct _XkbKey { /* key in a row */
+ XkbKeyNameRec name; /* key name */
+ short gap; /* gap in mm/10 from previous key in row */
+ unsigned char shape_ndx; /* index of shape for key */
+ unsigned char color_ndx; /* index of color for key body */
} XkbKeyRec, *XkbKeyPtr;
-typedef struct _XkbRow { /* row in a section */
- short top; /* top coordinate of row origin, relative to section’s origin */
- short left; /* left coordinate of row origin, relative to section’s origin */
- unsigned short num_keys; /* number of keys in the keys array */
- unsigned short sz_keys; /* size of the keys array */
- int vertical; /* True ⇒vertical row,
- False ⇒horizontal row */
- XkbKeyPtr keys; /* array of keys in the row*/
- XkbBoundsRec bounds; /* bounding box for the row */
+typedef struct _XkbRow { /* row in a section */
+ short top; /* top coordinate of row origin,
+ relative to section’s origin */
+ short left; /* left coordinate of row origin,
+ relative to section’s origin */
+ unsigned short num_keys; /* number of keys in the keys array */
+ unsigned short sz_keys; /* size of the keys array */
+ int vertical; /* True ⇒vertical row,
+ False ⇒horizontal row */
+ XkbKeyPtr keys; /* array of keys in the row */
+ XkbBoundsRec bounds; /* bounding box for the row */
} XkbRowRec, *XkbRowPtr;
@@ -888,22 +900,23 @@ typedef struct _XkbRow { /* row in a section */
typedef struct _XkbOverlayRec {
- Atom name; /* overlay name */
- XkbSectionPtr section_under; /* the section under this overlay */
- unsigned short num_rows; /* number of rows in the rows array */
- unsigned short sz_rows; /* size of the rows array */
- XkbOverlayRowPtr rows; /* array of rows in the overlay */
- XkbBoundsPtr bounds; /* bounding box for the overlay */
-} XkbOverlayRec,*XkbOverlayPtr;
+ Atom name; /* overlay name */
+ XkbSectionPtr section_under; /* the section under this overlay */
+ unsigned short num_rows; /* number of rows in the rows array */
+ unsigned short sz_rows; /* size of the rows array */
+ XkbOverlayRowPtr rows; /* array of rows in the overlay */
+ XkbBoundsPtr bounds; /* bounding box for the overlay */
+} XkbOverlayRec, *XkbOverlayPtr;
typedef struct _XkbOverlayRow {
- unsigned short row_under; /* index into the row under this overlay row */
- unsigned short num_keys; /* number of keys in the keys array */
- unsigned short sz_keys; /* size of the keys array */
- XkbOverlayKeyPtr keys; /* array of keys in the overlay row */
-} XkbOverlayRowRec,*XkbOverlayRowPtr;
+ unsigned short row_under; /* index into the row under this
+ overlay row */
+ unsigned short num_keys; /* number of keys in the keys array */
+ unsigned short sz_keys; /* size of the keys array */
+ XkbOverlayKeyPtr keys; /* array of keys in the overlay row */
+} XkbOverlayRowRec, *XkbOverlayRowPtr;
@@ -919,30 +932,32 @@ one pointed to by
typedef struct _XkbOverlayKey {
- XkbKeyNameRec over; /* name of this overlay key */
- XkbKeyNameRec under; /* name of the key under this overlay key */
-} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
+ XkbKeyNameRec over; /* name of this overlay key */
+ XkbKeyNameRec under; /* name of the key under this overlay key */
+} XkbOverlayKeyRec, *XkbOverlayKeyPtr;
typedef struct _XkbSection {
- Atom name; /* section name */
- unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
- short top; /* top coordinate of section origin */
- short left; /* left coordinate of row origin */
- unsigned short width; /* section width, in mm/10 */
- unsigned short height; /* section height, in mm/10 */
- short angle; /* angle of section rotation, counterclockwise */
- unsigned short num_rows; /* number of rows in the rows array */
- unsigned short num_doodads; /* number of doodads in the doodads array */
- unsigned short num_overlays; /* number of overlays in the overlays array */
- unsigned short sz_rows; /* size of the rows array */
- unsigned short sz_doodads; /* size of the doodads array */
- unsigned short sz_overlays; /* size of the overlays array */
- XkbRowPtr rows; /* section rows array */
- XkbDoodadPtr doodads; /* section doodads array */
- XkbBoundsRec bounds; /* bounding box for the section, before rotation*/
- XkbOverlayPtr overlays; /* section overlays array */
+ Atom name; /* section name */
+ unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
+ short top; /* top coordinate of section origin */
+ short left; /* left coordinate of row origin */
+ unsigned short width; /* section width, in mm/10 */
+ unsigned short height; /* section height, in mm/10 */
+ short angle; /* angle of section rotation,
+ counterclockwise */
+ unsigned short num_rows; /* number of rows in the rows array */
+ unsigned short num_doodads; /* number of doodads in the doodads array */
+ unsigned short num_overlays; /* number of overlays in the overlays array */
+ unsigned short sz_rows; /* size of the rows array */
+ unsigned short sz_doodads; /* size of the doodads array */
+ unsigned short sz_overlays; /* size of the overlays array */
+ XkbRowPtr rows; /* section rows array */
+ XkbDoodadPtr doodads; /* section doodads array */
+ XkbBoundsRec bounds; /* bounding box for the section,
+ before rotation */
+ XkbOverlayPtr overlays; /* section overlays array */
} XkbSectionRec, *XkbSectionPtr;
@@ -981,11 +996,11 @@ The doodad structures form a union:
typedef union _XkbDoodad {
- XkbAnyDoodadRec any;
- XkbShapeDoodadRec shape;
- XkbTextDoodadRec text;
- XkbIndicatorDoodadRec indicator;
- XkbLogoDoodadRec logo;
+ XkbAnyDoodadRec any;
+ XkbShapeDoodadRec shape;
+ XkbTextDoodadRec text;
+ XkbIndicatorDoodadRec indicator;
+ XkbLogoDoodadRec logo;
} XkbDoodadRec, *XkbDoodadPtr;
@@ -1016,61 +1031,65 @@ relative to the keyboard’s origin if the doodad is in the
typedef struct _XkbShapeDoodad {
- Atom name; /* doodad name */
- unsigned char type; /* XkbOutlineDoodad
- or XkbSolidDoodad */
- unsigned char priority; /* drawing priority,
- 0⇒highest, 255⇒lowest */
- short top; /* top coordinate, in mm/10 */
- short left; /* left coordinate, in mm/10 */
- short angle; /* angle of rotation, clockwise, in 1/10 degrees */
- unsigned short color_ndx; /* doodad color */
- unsigned short shape_ndx; /* doodad shape */
+ Atom name; /* doodad name */
+ unsigned char type; /* XkbOutlineDoodad
+ or XkbSolidDoodad */
+ unsigned char priority; /* drawing priority,
+ 0⇒highest, 255⇒lowest */
+ short top; /* top coordinate, in mm/10 */
+ short left; /* left coordinate, in mm/10 */
+ short angle; /* angle of rotation, clockwise,
+ in 1/10 degrees */
+ unsigned short color_ndx; /* doodad color */
+ unsigned short shape_ndx; /* doodad shape */
} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
typedef struct _XkbTextDoodad {
- Atom name; /* doodad name */
- unsigned char type; /* XkbTextDoodad */
- unsigned char priority; /* drawing priority,
- 0⇒highest, 255⇒lowest */
- short top; /* top coordinate, in mm/10 */
- short left; /* left coordinate, in mm/10 */
- short angle; /* angle of rotation, clockwise, in 1/10 degrees */
- short width; /* width in mm/10 */
- short height; /* height in mm/10 */
- unsigned short color_ndx; /* doodad color */
- char * text; /* doodad text */
- char * font; /* arbitrary font name for doodad text */
+ Atom name; /* doodad name */
+ unsigned char type; /* XkbTextDoodad */
+ unsigned char priority; /* drawing priority,
+ 0⇒highest, 255⇒lowest */
+ short top; /* top coordinate, in mm/10 */
+ short left; /* left coordinate, in mm/10 */
+ short angle; /* angle of rotation, clockwise,
+ in 1/10 degrees */
+ short width; /* width in mm/10 */
+ short height; /* height in mm/10 */
+ unsigned short color_ndx; /* doodad color */
+ char * text; /* doodad text */
+ char * font; /* arbitrary font name for doodad text */
} XkbTextDoodadRec, *XkbTextDoodadPtr;
typedef struct _XkbIndicatorDoodad {
- Atom name; /* doodad name */
- unsigned char type; /* XkbIndicatorDoodad */
- unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
- short top; /* top coordinate, in mm/10 */
- short left; /* left coordinate, in mm/10 */
- short angle; /* angle of rotation, clockwise, in 1/10 degrees */
- unsigned short shape_ndx; /* doodad shape */
- unsigned short on_color_ndx; /* color for doodad if indicator is on */
- unsigned short off_color_ndx; /* color for doodad if indicator is off */
+ Atom name; /* doodad name */
+ unsigned char type; /* XkbIndicatorDoodad */
+ unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
+ short top; /* top coordinate, in mm/10 */
+ short left; /* left coordinate, in mm/10 */
+ short angle; /* angle of rotation, clockwise,
+ in 1/10 degrees */
+ unsigned short shape_ndx; /* doodad shape */
+ unsigned short on_color_ndx; /* color for doodad if indicator is on */
+ unsigned short off_color_ndx;/* color for doodad if indicator is off */
} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
typedef struct _XkbLogoDoodad {
- Atom name; /* doodad name */
- unsigned char type; /* XkbLogoDoodad */
- unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
- short top; /* top coordinate, in mm/10 */
- short left; /* left coordinate, in mm/10 */
- short angle; /* angle of rotation, clockwise, in 1/10 degrees */
- unsigned short color_ndx; /* doodad color */
- unsigned short shape_ndx; /* doodad shape */
- char * logo_name; /* text for logo */
+ Atom name; /* doodad name */
+ unsigned char type; /* XkbLogoDoodad */
+ unsigned char priority; /* drawing priority, 0⇒highest, 255⇒lowest */
+ short top; /* top coordinate, in mm/10 */
+ short left; /* left coordinate, in mm/10 */
+ short angle; /* angle of rotation, clockwise,
+ in 1/10 degrees */
+ unsigned short color_ndx; /* doodad color */
+ unsigned short shape_ndx; /* doodad shape */
+ char * logo_name; /* text for logo */
} XkbLogoDoodadRec, *XkbLogoDoodadPtr
@@ -4255,9 +4274,8 @@ To free an entire geometry, use
The values of which and free_all determine how much of the specified geometry
is freed. The valid values for which are:
-
-
+
#define XkbGeomPropertiesMask (1<<0)
#define XkbGeomColorsMask (1<<1)
#define XkbGeomShapesMask (1<<2)
diff --git a/specs/XKB/ch14.xml b/specs/XKB/ch14.xml
index 86e80b4d..b87ef56b 100644
--- a/specs/XKB/ch14.xml
+++ b/specs/XKB/ch14.xml
@@ -483,9 +483,8 @@ information on these functions.
Xkb defines combinations of these masks for convenience:
-
-
+
#define XkbResizableInfoMask (XkbKeyTypesMask)
#define XkbAllClientInfoMask (XkbKeyTypesMask | XkbKeySymsMask |
XkbModifierMapMask)
@@ -723,43 +722,43 @@ components and to reduce the amount of traffic between the server and clients.
typedef struct _XkbMapChanges {
- unsigned short changed; /* identifies valid components
- in structure */
- KeyCode min_key_code; /* lowest numbered keycode for
- device */
- KeyCode max_key_code; /* highest numbered keycode for
- device */
- unsigned char first_type; /* index of first key type
- modified */
- unsigned char num_types; /* # types modified */
- KeyCode first_key_sym; /* first key whose key_sym_map
- changed */
- unsigned char num_key_syms; /* # key_sym_map
- entries changed */
- KeyCode first_key_act; /* first key whose key_acts
- entry changed */
- unsigned char num_key_acts; /* # key_acts
- entries changed */
- KeyCode first_key_behavior; /* first key whose behaviors
- changed */
- unsigned char num_key_behaviors; /* # behaviors
- entries changed */
- KeyCode first_key_explicit; /* first key whose explicit
- entry changed */
- unsigned char num_key_explicit; /* # explicit
- entries changed */
- KeyCode first_modmap_key; /* first key whose modmap
- entry changed */
- unsigned char num_modmap_keys; /* # modmap
- entries changed */
- KeyCode first_vmodmap_key; /* first key whose vmodmap
- changed */
- unsigned char num_vmodmap_keys; /* # vmodmap
- entries changed */
- unsigned char pad1; /* reserved */
- unsigned short vmods; /* mask indicating which vmods
- changed */
-} XkbMapChangesRec,*XkbMapChangesPtr;
+ unsigned short changed; /* identifies valid components
+ in structure */
+ KeyCode min_key_code; /* lowest numbered keycode for
+ device */
+ KeyCode max_key_code; /* highest numbered keycode for
+ device */
+ unsigned char first_type; /* index of first key type
+ modified */
+ unsigned char num_types; /* # types modified */
+ KeyCode first_key_sym; /* first key whose key_sym_map
+ changed */
+ unsigned char num_key_syms; /* # key_sym_map
+ entries changed */
+ KeyCode first_key_act; /* first key whose key_acts
+ entry changed */
+ unsigned char num_key_acts; /* # key_acts
+ entries changed */
+ KeyCode first_key_behavior; /* first key whose behaviors
+ changed */
+ unsigned char num_key_behaviors; /* # behaviors
+ entries changed */
+ KeyCode first_key_explicit; /* first key whose explicit
+ entry changed */
+ unsigned char num_key_explicit; /* # explicit
+ entries changed */
+ KeyCode first_modmap_key; /* first key whose modmap
+ entry changed */
+ unsigned char num_modmap_keys; /* # modmap
+ entries changed */
+ KeyCode first_vmodmap_key; /* first key whose vmodmap
+ changed */
+ unsigned char num_vmodmap_keys; /* # vmodmap
+ entries changed */
+ unsigned char pad1; /* reserved */
+ unsigned short vmods; /* mask indicating which vmods
+ changed */
+} XkbMapChangesRec, *XkbMapChangesPtr;
@@ -1029,36 +1028,35 @@ To receive
The structure for
XkbMapNotify
events is:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbMapNotify */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- unsigned int changed; /* identifies valid fields in rest of event */
- unsigned int resized; /* reserved */
- int first_type; /* index of first key type modified */
- int num_types /* # types modified */
- KeyCode min_key_code; /* minimum keycode for device */
- KeyCode max_key_code; /* maximum keycode for device */
- KeyCode first_key_sym; /* first key whose key_sym_map changed */
- KeyCode first_key_act; /* first key whose key_acts entry changed */
- KeyCode first_key_behavior; /* first key whose behaviors changed */
- KeyCode first_key_explicit; /* first key whose explicit entry changed */
- KeyCode first_modmap_key; /* first key whose modmap entry changed */
- KeyCode first_vmodmap_key; /* # modmap entries changed */
- int num_key_syms; /* # key_sym_map entries changed */
- int num_key_acts; /* # key_acts entries changed */
- int num_key_behaviors; /* # behaviors entries changed */
- int num_key_explicit; /* # explicit entries changed */
- int num_modmap_keys; /* # modmap entries changed */
- int num_vmodmap_keys; /* # vmodmap entries changed */
- unsigned int vmods; /* mask indicating which vmods changed */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbMapNotify */
+ int device; /* Xkb device ID, will not be XkbUseCoreKbd */
+ unsigned int changed; /* identifies valid fields in rest of event */
+ unsigned int resized; /* reserved */
+ int first_type; /* index of first key type modified */
+ int num_types /* # types modified */
+ KeyCode min_key_code; /* minimum keycode for device */
+ KeyCode max_key_code; /* maximum keycode for device */
+ KeyCode first_key_sym; /* first key whose key_sym_map changed */
+ KeyCode first_key_act; /* first key whose key_acts entry changed */
+ KeyCode first_key_behavior; /* first key whose behaviors changed */
+ KeyCode first_key_explicit; /* first key whose explicit entry changed */
+ KeyCode first_modmap_key; /* first key whose modmap entry changed */
+ KeyCode first_vmodmap_key; /* # modmap entries changed */
+ int num_key_syms; /* # key_sym_map entries changed */
+ int num_key_acts; /* # key_acts entries changed */
+ int num_key_behaviors; /* # behaviors entries changed */
+ int num_key_explicit; /* # explicit entries changed */
+ int num_modmap_keys; /* # modmap entries changed */
+ int num_vmodmap_keys; /* # vmodmap entries changed */
+ unsigned int vmods; /* mask indicating which vmods changed */
} XkbMapNotifyEvent;
diff --git a/specs/XKB/ch15.xml b/specs/XKB/ch15.xml
index 2a1219e8..ed4fd5ab 100644
--- a/specs/XKB/ch15.xml
+++ b/specs/XKB/ch15.xml
@@ -38,20 +38,18 @@ The
map
field of the complete Xkb keyboard description (see section 6.1) is a pointer
to the Xkb client map, which is of type
-XkbClientMapRec
-:
-
+XkbClientMapRec:
-
-typedef struct { /* Client Map */
- unsigned char size_types; /* # occupied entries in types */
- unsigned char num_types; /* # entries in types */
- XkbKeyTypePtr types; /* vector of key types used by this keymap */
- unsigned short size_syms; /* length of the syms array */
- unsigned short num_syms; /* # entries in syms */
- KeySym * syms; /* linear 2d tables of keysyms, 1 per key */
- XkbSymMapPtr key_sym_map; /* 1 per keycode, maps keycode to syms */
- unsigned char * modmap; /* 1 per keycode, real mods bound to key */
+
+typedef struct { /* Client Map */
+ unsigned char size_types; /* # occupied entries in types */
+ unsigned char num_types; /* # entries in types */
+ XkbKeyTypePtr types; /* vector of key types used by this keymap */
+ unsigned short size_syms; /* length of the syms array */
+ unsigned short num_syms; /* # entries in syms */
+ KeySym * syms; /* linear 2d tables of keysyms, 1 per key */
+ XkbSymMapPtr key_sym_map; /* 1 per keycode, maps keycode to syms */
+ unsigned char * modmap; /* 1 per keycode, real mods bound to key */
} XkbClientMapRec, *XkbClientMapPtr;
@@ -76,34 +74,31 @@ description are held in the
and whose total number of valid entries is stored in
num_types.
Key types are defined using the following structures:
-
-
-typedef struct { /* Key Type */
- XkbModsRec mods; /* modifiers used to compute shift
- level */
- unsigned char num_levels; /* total # shift levels, do not
- modify directly */
- unsigned char map_count; /* # entries in map,
- preserve
- (if non-NULL) */
- XkbKTMapEntryPtr map; /* vector of modifiers for each
- shift level */
- XkbModsPtr preserve; /* mods to preserve for corresponding
- map entry */
- Atom name; /* name of key type */
- Atom * level_names; /* array of names of each shift level */
+
+typedef struct { /* Key Type */
+ XkbModsRec mods; /* modifiers used to compute shift level */
+ unsigned char num_levels; /* total # shift levels, do not
+ modify directly */
+ unsigned char map_count; /* # entries in map, preserve
+ (if non-NULL) */
+ XkbKTMapEntryPtr map; /* vector of modifiers for each
+ shift level */
+ XkbModsPtr preserve; /* mods to preserve for
+ corresponding map entry */
+ Atom name; /* name of key type */
+ Atom * level_names; /* array of names of each shift level */
} XkbKeyTypeRec, *XkbKeyTypePtr;
-
+
-
-typedef struct { /* Modifiers for a key type */
- Bool active; /* True ⇒ entry
- active when determining shift level */
- unsigned char level; /* shift level if modifiers match mods */
- XkbModsRec mods; /* mods needed for this level to be
- selected */
-} XkbKTMapEntryRec,*XkbKTMapEntryPtr;
+
+typedef struct { /* Modifiers for a key type */
+ Bool active; /* True ⇒ entry active when
+ determining shift level */
+ unsigned char level; /* shift level if modifiers match mods */
+ XkbModsRec mods; /* mods needed for this level to be
+ selected */
+} XkbKTMapEntryRec, *XkbKTMapEntryPtr;
@@ -412,14 +407,14 @@ first
entries of the
types
field of the client map and are indexed using the following constants:
-
-
- XkbOneLevelIndex
- XkbTwoLevelIndex
- XkbAlphabeticIndex
- XkbKeypadIndex
-
+
+ XkbOneLevelIndex
+ XkbTwoLevelIndex
+ XkbAlphabeticIndex
+ XkbKeypadIndex
+
+ONE_LEVEL
@@ -1254,19 +1249,19 @@ have
arrays, whether or not any key actually yields that code. The
KeySymMapRec
structure is defined as follows:
-
-
+
#define XkbNumKbdGroups 4
#define XkbMaxKbdGroup (XkbNumKbdGroups-1)
-
-
-typedef struct { /* map to keysyms for a single keycode */
- unsigned char kt_index[XkbNumKbdGroups]; /* key type index for each group */
- unsigned char group_info; /* # of groups and out of range group handling */
- unsigned char width; /* max # of shift levels for key */
- unsigned short offset; /* index to keysym table in syms array */
+typedef struct { /* map to keysyms for a single keycode */
+ unsigned char kt_index[XkbNumKbdGroups];
+ /* key type index for each group */
+ unsigned char group_info; /* # of groups and out of range
+ group handling */
+ unsigned char width; /* max # of shift levels for key */
+ unsigned short offset; /* index to keysym table in
+ syms array */
} XkbSymMapRec, *XkbSymMapPtr;
diff --git a/specs/XKB/ch16.xml b/specs/XKB/ch16.xml
index 7d76942f..d9bc8c90 100644
--- a/specs/XKB/ch16.xml
+++ b/specs/XKB/ch16.xml
@@ -33,24 +33,24 @@ Server Map Relationships
The Xkb server map contains the information the server needs to interpret key
events and is of type
-XkbServerMapRec
-:
-
+XkbServerMapRec:
-
+
#define XkbNumVirtualMods 16
-
-
-typedef struct { /* Server Map */
- unsigned short num_acts; /* # of occupied entries in acts */
- unsigned short size_acts; /* # of entries in acts */
- XkbAction * acts; /* linear 2d tables of key actions, 1 per keycode */
- XkbBehavior * behaviors; /* key behaviors,1 per keycode */
- unsigned short * key_acts; /* index into acts , 1 per keycode */
- unsigned char * explicit; /* explicit overrides of core remapping, 1 per key */
- unsigned char vmods[XkbNumVirtualMods]; /* real mods bound to virtual mods */
- unsigned short * vmodmap; /* virtual mods bound to key, 1 per keycode*/
+typedef struct { /* Server Map */
+ unsigned short num_acts; /* # of occupied entries in acts */
+ unsigned short size_acts; /* # of entries in acts */
+ XkbAction * acts; /* linear 2d tables of key actions,
+ 1 per keycode */
+ XkbBehavior * behaviors; /* key behaviors, 1 per keycode */
+ unsigned short * key_acts; /* index into acts, 1 per keycode */
+ unsigned char * explicit; /* explicit overrides of core
+ remapping, 1 per key */
+ unsigned char vmods[XkbNumVirtualMods]; /* real mods bound
+ to virtual mods */
+ unsigned short * vmodmap; /* virtual mods bound to key,
+ 1 per keycode */
} XkbServerMapRec, *XkbServerMapPtr;
@@ -438,24 +438,23 @@ corresponding to
The description for an action is held in an
XkbAction
structure, which is a union of all possible Xkb action types:
-
-
+
typedef union _XkbAction {
- XkbAnyAction any;
- XkbModAction mods;
- XkbGroupAction group;
- XkbISOAction iso;
- XkbPtrAction ptr;
- XkbPtrBtnAction btn;
- XkbPtrDfltAction dflt;
- XkbSwitchScreenAction screen;
- XkbCtrlsAction ctrls;
- XkbMessageAction msg;
- XkbRedirectKeyAction redirect;
- XkbDeviceBtnAction devbtn;
- XkbDeviceValuatorAction devval;
- unsigned char type;
+ XkbAnyAction any;
+ XkbModAction mods;
+ XkbGroupAction group;
+ XkbISOAction iso;
+ XkbPtrAction ptr;
+ XkbPtrBtnAction btn;
+ XkbPtrDfltAction dflt;
+ XkbSwitchScreenAction screen;
+ XkbCtrlsAction ctrls;
+ XkbMessageAction msg;
+ XkbRedirectKeyAction redirect;
+ XkbDeviceBtnAction devbtn;
+ XkbDeviceValuatorAction devval;
+ unsigned char type;
} XkbAction;
@@ -476,16 +475,13 @@ structures for each action in detail.
The
XkbAnyAction
structure is a convenience structure that refers to any of the actions:
-
-
+
#define XkbAnyActionDataSize 7
-
-
typedef struct _XkbAnyAction {
- unsigned char type; /* type of action; determines interpretation for data */
- unsigned char data[XkbAnyActionDataSize];
+ unsigned char type; /* type of action; determines interpretation for data */
+ unsigned char data[XkbAnyActionDataSize];
} XkbAnyAction;
@@ -629,16 +625,20 @@ Actions associated with the
XkbModAction
structure change the state of the modifiers when keys are pressed and released
(see for a discussion of modifiers):
-
-
+
typedef struct _XkbModAction {
- unsigned char type; /* XkbSA_{Set|Latch|Lock}Mods */
- unsigned char flags; /* with type , controls the effect on modifiers */
- unsigned char mask; /* same as mask field of a modifier description */
- unsigned char real_mods; /* same as real_mods field of a modifier description */
- unsigned char vmods1; /* derived from vmods field of a modifier description */
- unsigned char vmods2; /* derived from vmods field of a modifier description */
+ unsigned char type; /* XkbSA_{Set|Latch|Lock}Mods */
+ unsigned char flags; /* with type, controls the effect
+ on modifiers */
+ unsigned char mask; /* same as mask field of
+ a modifier description */
+ unsigned char real_mods; /* same as real_mods field of
+ a modifier description */
+ unsigned char vmods1; /* derived from vmods field of
+ a modifier description */
+ unsigned char vmods2; /* derived from vmods field of
+ a modifier description */
} XkbModAction;
@@ -1005,13 +1005,12 @@ Actions associated with the
XkbGroupAction
structure change the current group state when keys are pressed and released
(see for a description of groups and keyboard state):
-
-
+
typedef struct _XkbGroupAction {
- unsigned char type; /* XkbSA_{Set|Latch|Lock}Group */
- unsigned char flags; /* with type , controls the effect on groups */
- char group_XXX; /* represents a group index or delta */
+ unsigned char type; /* XkbSA_{Set|Latch|Lock}Group */
+ unsigned char flags; /* with type , controls the effect on groups */
+ char group_XXX; /* represents a group index or delta */
} XkbGroupAction;
@@ -1300,16 +1299,15 @@ type XkbAction, these macros may only be used with Actions of type
Actions associated with the
XkbPtrAction
structure move the pointer when keys are pressed and released:
-
-
+
typedef struct _XkbPtrAction {
- unsigned char type; /* XkbSA_MovePtr */
- unsigned char flags; /* determines type of pointer motion */
- unsigned char high_XXX; /* x coordinate, high bits*/
- unsigned char low_XXX; /* y coordinate, low bits */
- unsigned char high_YYY; /* x coordinate, high bits */
- unsigned char low_YYY; /* y coordinate, low bits */
+ unsigned char type; /* XkbSA_MovePtr */
+ unsigned char flags; /* determines type of pointer motion */
+ unsigned char high_XXX; /* x coordinate, high bits */
+ unsigned char low_XXX; /* y coordinate, low bits */
+ unsigned char high_YYY; /* x coordinate, high bits */
+ unsigned char low_YYY; /* y coordinate, low bits */
} XkbPtrAction;
@@ -1594,14 +1592,15 @@ Actions associated with the
XkbPtrBtnAction
structure simulate the press and release of pointer buttons when keys are
pressed and released:
-
-
+
typedef struct _XkbPtrBtnAction {
- unsigned char type; /* XkbSA_PtrBtn, XkbSA_LockPtrBtn */
- unsigned char flags; /* with type , controls the effect on pointer buttons*/
- unsigned char count; /* controls number of ButtonPress and ButtonRelease events */
- unsigned char button; /* pointer button to simulate */
+ unsigned char type; /* XkbSA_PtrBtn, XkbSA_LockPtrBtn */
+ unsigned char flags; /* with type, controls the effect
+ on pointer buttons */
+ unsigned char count; /* controls number of ButtonPress and
+ ButtonRelease events */
+ unsigned char button; /* pointer button to simulate */
} XkbPtrBtnAction;
@@ -1815,14 +1814,13 @@ Actions associated with the
attribute of the
MouseKeys
control (see section 10.5.1):
-
-
+
typedef struct _XkbPtrDfltAction {
- unsigned char type; /* XkbSA_SetPtrDflt */
- unsigned char flags; /* controls the pointer button number */
- unsigned char affect; /* XkbSA_AffectDfltBtn */
- char valueXXX; /* new default button member */
+ unsigned char type; /* XkbSA_SetPtrDflt */
+ unsigned char flags; /* controls the pointer button number */
+ unsigned char affect; /* XkbSA_AffectDfltBtn */
+ char valueXXX; /* new default button member */
} XkbPtrDfltAction;
@@ -2049,14 +2047,20 @@ The
typedef struct _XkbISOAction {
- unsigned char type; /* XkbSA_ISOLock */
- unsigned char flags; /* controls changes to group or modifier state */
- unsigned char mask; /* same as mask field of a modifier description */
- unsigned char real_mods; /* same as real_mods field of a modifier description */
- char group_XXX; /* group index or delta group */
- unsigned char affect; /* specifies whether to affect mods, group, ptrbtn, or controls*/
- unsigned char vmods1; /* derived from vmods field of a modifier description */
- unsigned char vmods2; /* derived from vmods field of a modifier description */
+ unsigned char type; /* XkbSA_ISOLock */
+ unsigned char flags; /* controls changes to group or
+ modifier state */
+ unsigned char mask; /* same as mask field of
+ a modifier description */
+ unsigned char real_mods; /* same as real_mods field of
+ a modifier description */
+ char group_XXX; /* group index or delta group */
+ unsigned char affect; /* specifies whether to affect
+ mods, group, ptrbtn, or controls */
+ unsigned char vmods1; /* derived from vmods field of
+ a modifier description */
+ unsigned char vmods2; /* derived from vmods field of
+ a modifier description */
} XkbISOAction;
@@ -2455,9 +2459,9 @@ Otherwise, key press and key release events do not generate an event.
typedef struct _XkbSwitchScreenAction {
- unsigned char type; /* XkbSA_SwitchScreen */
- unsigned char flags; /* controls screen switching */
- char screenXXX; /* screen number or delta */
+ unsigned char type; /* XkbSA_SwitchScreen */
+ unsigned char flags; /* controls screen switching */
+ char screenXXX; /* screen number or delta */
} XkbSwitchScreenAction;
@@ -2614,22 +2618,21 @@ signed character value for screen numbers in
Actions associated with the
XkbCtrlsAction
structure change the state of the boolean controls (see section 10.1):
-
-
+
typedef struct _XkbCtrlsAction {
- unsigned char type; /* XkbSA_SetControls,
- XkbSA_LockControls */
- unsigned char flags; /* with type,
- controls enabling and disabling of controls */
- unsigned char ctrls3; /* ctrls0 through
- ctrls3 represent the boolean controls */
- unsigned char ctrls2; /* ctrls0 through
- ctrls3 represent the boolean controls */
- unsigned char ctrls1; /* ctrls0 through
- ctrls3 represent the boolean controls */
- unsigned char ctrls0; /* ctrls0 through
- ctrls3 represent the boolean controls */
+ unsigned char type; /* XkbSA_SetControls,
+ XkbSA_LockControls */
+ unsigned char flags; /* with type, controls enabling
+ and disabling of controls */
+ unsigned char ctrls3; /* ctrls0 through ctrls3
+ represent the boolean controls */
+ unsigned char ctrls2; /* ctrls0 through ctrls3
+ represent the boolean controls */
+ unsigned char ctrls1; /* ctrls0 through ctrls3
+ represent the boolean controls */
+ unsigned char ctrls0; /* ctrls0 through ctrls3
+ represent the boolean controls */
} XkbCtrlsAction;
@@ -2880,16 +2883,15 @@ Actions associated with the
structure generate
XkbActionMessage
events:
-
-
-#define XkbActionMessageLength 6
-
-
+
+#define XkbActionMessageLength 6
+
typedef struct _XkbMessageAction {
- unsigned char type; /* XkbSA_ActionMessage */
- unsigned char flags; /* controls event generation via key presses and releases */
- unsigned char message[XkbActionMessageLength]; /* message */
+ unsigned char type; /* XkbSA_ActionMessage */
+ unsigned char flags; /* controls event generation via
+ key presses and releases */
+ unsigned char message[XkbActionMessageLength]; /* message */
} XkbMessageAction;
@@ -3019,22 +3021,22 @@ The
The structure for the
XkbActionMessage
event is defined as follows:
-
-
+
typedef struct _XkbActionMessage {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbActionMessage */
- int device; /* Xkb device ID, will not be XkbUseCoreKbd */
- KeyCode keycode; /* keycode of key triggering event */
- Bool press; /* True ⇒ key press,
- False ⇒ release */
- Bool key_event_follows; /* True ⇒ KeyPress/KeyRelease follows */
- char message[XkbActionMessageLength+1]; /* message text */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbActionMessage */
+ int device; /* Xkb device ID,
+ will not be XkbUseCoreKbd */
+ KeyCode keycode; /* keycode of key triggering event */
+ Bool press; /* True ⇒ key press,
+ False ⇒ release */
+ Bool key_event_follows;/* True ⇒ KeyPress/KeyRelease follows */
+ char message[XkbActionMessageLength+1]; /* message text */
} XkbActionMessageEvent;
@@ -3113,18 +3115,21 @@ Actions associated with the
KeyRelease
events containing a keycode different from the key that was pressed or
released:
-
-
+
typedef struct _XkbRedirectKeyAction {
- unsigned char type; /* XkbSA_RedirectKey */
- unsigned char new_key; /* keycode to be put in event */
- unsigned char mods_mask; /* mask of real mods to be reset */
- unsigned char mods; /* mask of real mods to take values from */
- unsigned char vmods_mask0; /* first half of mask of virtual mods to be reset */
- unsigned char vmods_mask1; /* other half of mask of virtual mods to be reset */
- unsigned char vmods0; /* first half of mask of virtual mods to take values from */
- unsigned char vmods1; /* other half of mask of virtual mods to take values from */
+ unsigned char type; /* XkbSA_RedirectKey */
+ unsigned char new_key; /* keycode to be put in event */
+ unsigned char mods_mask; /* mask of real mods to be reset */
+ unsigned char mods; /* mask of real mods to take values from */
+ unsigned char vmods_mask0; /* first half of mask of virtual mods
+ to be reset */
+ unsigned char vmods_mask1; /* other half of mask of virtual mods
+ to be reset */
+ unsigned char vmods0; /* first half of mask of virtual mods
+ to take values from */
+ unsigned char vmods1; /* other half of mask of virtual mods
+ to take values from */
} XkbRedirectKeyAction;
@@ -3378,15 +3383,15 @@ Actions associated with
and
KeyRelease
events:
-
-
+
typedef struct _XkbDeviceBtnAction {
- unsigned char type; /* XkbSA_DeviceBtn, XkbSA_LockDeviceBtn */
- unsigned char flags; /* with type , specifies locking or unlocking */
- unsigned char count; /* controls number of DeviceButtonPress and Release events */
- unsigned char button; /* index of button on device */
- unsigned char device; /* device ID of an X input extension device */
+ unsigned char type; /* XkbSA_DeviceBtn, XkbSA_LockDeviceBtn */
+ unsigned char flags; /* with type, specifies locking or unlocking */
+ unsigned char count; /* controls number of DeviceButtonPress
+ and Release events */
+ unsigned char button; /* index of button on device */
+ unsigned char device; /* device ID of an X input extension device */
} XkbDeviceBtnAction;
@@ -3562,14 +3567,16 @@ valuators.
typedef struct _XkbDeviceValuatorAction {
- unsigned char type; /*XkbSA_DeviceValuator */
- unsigned char device; /* device ID */
- unsigned char v1_what; /* determines how valuator is to behave for valuator 1 */
- unsigned char v1_ndx; /* specifies a real valuator */
- unsigned char v1_value; /* the value for valuator 1 */
- unsigned char v2_what; /* determines how valuator is to behave for valuator 2 */
- unsigned char v2_ndx; /* specifies a real valuator */
- unsigned char v2_value; /* the value for valuator 1 */
+ unsigned char type; /* XkbSA_DeviceValuator */
+ unsigned char device; /* device ID */
+ unsigned char v1_what; /* determines how valuator is
+ to behave for valuator 1 */
+ unsigned char v1_ndx; /* specifies a real valuator */
+ unsigned char v1_value; /* the value for valuator 1 */
+ unsigned char v2_what; /* determines how valuator is
+ to behave for valuator 2 */
+ unsigned char v2_ndx; /* specifies a real valuator */
+ unsigned char v2_value; /* the value for valuator 1 */
} XkbDeviceValuatorAction;
@@ -3680,12 +3687,11 @@ The following two masks are provided as a convenience to select either portion
of
v1_what
or
-v2_what
-:
+v2_what:
- #define XkbSA_ValOpMask (0x70)
- #define XkbSA_ValScaleMask (0x07)
+#define XkbSA_ValOpMask (0x70)
+#define XkbSA_ValScaleMask (0x07)
@@ -4000,9 +4006,8 @@ The low five bits of the
XkbBehavior
structure are the group number, the high three bits are flags. The only flag
currently defined is:
-
-
+
#define XkbKB_RGAllowNone 0x80
@@ -4018,13 +4023,12 @@ The
structures, indexed by keycode, and contains the behavior for each key. The
XkbBehavior
structure is defined as follows:
-
-
+
typedef struct _XkbBehavior {
- unsigned char type; /* behavior type + optional
- XkbKB_Permanent bit */
- unsigned char data;
+ unsigned char type; /* behavior type + optional
+ XkbKB_Permanent bit */
+ unsigned char data;
} XkbBehavior;
diff --git a/specs/XKB/ch17.xml b/specs/XKB/ch17.xml
index 7431c92c..c59a233e 100644
--- a/specs/XKB/ch17.xml
+++ b/specs/XKB/ch17.xml
@@ -151,16 +151,15 @@ The
points to the
XkbCompatMapRec
structure:
-
-
+
typedef struct _XkbCompatMapRec {
- XkbSymInterpretPtr sym_interpret; /* symbol based key semantics*/
- XkbModsRec groups[XkbNumKbdGroups]; /* group ⇒ modifier map */
- unsigned short num_si; /* # structures used in
- sym_interpret */
- unsigned short size_si; /* # structures allocated in
- sym_interpret */
+ XkbSymInterpretPtr sym_interpret; /* symbol based key semantics */
+ XkbModsRec groups[XkbNumKbdGroups]; /* group ⇒ modifier map */
+ unsigned short num_si; /* # structures used in
+ sym_interpret */
+ unsigned short size_si; /* # structures allocated in
+ sym_interpret */
} XkbCompatMapRec, *XkbCompatMapPtr;
@@ -440,16 +439,16 @@ processing may be modified for the particular key involved:
The XkbSymInterpretRec
structure specifies a symbol interpretation:
-
-
+
typedef struct {
- KeySym sym; /* keysym of interest or NULL */
- unsigned char flags; /* XkbSI_AutoRepeat, XkbSI_LockingKey */
- unsigned char match; /* specifies how mods is interpreted */
- unsigned char mods; /* modifier bits, correspond to eight real modifiers */
- unsigned char virtual_mod; /* 1 modifier to add to key virtual mod map */
- XkbAnyAction act; /* action to bind to symbol position on key */
+ KeySym sym; /* keysym of interest or NULL */
+ unsigned char flags; /* XkbSI_AutoRepeat, XkbSI_LockingKey */
+ unsigned char match; /* specifies how mods is interpreted */
+ unsigned char mods; /* modifier bits, correspond to
+ eight real modifiers */
+ unsigned char virtual_mod; /* 1 modifier to add to key virtual mod map */
+ XkbAnyAction act; /* action to bind to symbol position on key */
} XkbSymInterpretRec,*XkbSymInterpretPtr;
@@ -649,14 +648,12 @@ for the key.
If the matching symbol is in position G1L1 of the key, two bits in the flags
field potentially specify additional behavior modifications:
-
-
-#define XkbSI_AutoRepeat (1<<0)
- /* key repeats if sym is in position G1L1 */
-#define XkbSI_LockingKey (1<<1)
- /* set KB_Lock
- behavior if sym is in psn G1L1 */
+
+#define XkbSI_AutoRepeat (1<<0) /* key repeats if sym
+ is in position G1L1 */
+#define XkbSI_LockingKey (1<<1) /* set KB_Lock behavior
+ if sym is in psn G1L1 */
@@ -1575,26 +1572,25 @@ made by other clients.
The structure for the
XkbCompatMapNotifyEvent
is:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True ⇒
- synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbCompatMapNotify */
- int device; /* Xkb device ID, will not be
- XkbUseCoreKbd */
- unsigned int changed_groups;/* number of group maps changed */
- int first_si; /* index to 1st changed symbol
- interpretation */
- int num_si; /* number of changed symbol
- interpretations */
- int num_total_si; /* total number of valid symbol
- interpretations */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒
+ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbCompatMapNotify */
+ int device; /* Xkb device ID, will not be
+ XkbUseCoreKbd */
+ unsigned int changed_groups; /* number of group maps changed */
+ int first_si; /* index to 1st changed symbol
+ interpretation */
+ int num_si; /* number of changed symbol
+ interpretations */
+ int num_total_si; /* total number of valid symbol
+ interpretations */
} XkbCompatMapNotifyEvent;
diff --git a/specs/XKB/ch18.xml b/specs/XKB/ch18.xml
index 3603933f..7ea36cd9 100644
--- a/specs/XKB/ch18.xml
+++ b/specs/XKB/ch18.xml
@@ -33,50 +33,51 @@ these symbolic names are grouped into the
The names component of the keyboard description is defined as follows:
-
-
+
#define XkbKeyNameLength 4
#define XkbKeyNumVirtualMods 16
#define XkbKeyNumIndicators 32
#define XkbKeyNumKbdGroups 4
#define XkbMaxRadioGroups 32
-
-
typedef struct {
- char name[XkbKeyNameLength]; /* symbolic key names */
-} XkbKeyNameRec,*XkbKeyNamePtr;
-
+ char name[XkbKeyNameLength]; /* symbolic key names */
+} XkbKeyNameRec, *XkbKeyNamePtr;
-
typedef struct {
- char real[XkbKeyNameLength];
- /* this key name must be in the keys array */
- char alias[XkbKeyNameLength];
- /* symbolic key name as alias for the key */
-} XkbKeyAliasRec,*XkbKeyAliasPtr;
-
+ char real[XkbKeyNameLength];
+ /* this key name must be in the keys array */
+ char alias[XkbKeyNameLength];
+ /* symbolic key name as alias for the key */
+} XkbKeyAliasRec, *XkbKeyAliasPtr;
-
typedef struct _XkbNamesRec {
- Atom keycodes; /* identifies range and meaning of keycodes */
- Atom geometry; /* identifies physical location, size, and shape of keys */
- Atom symbols; /* identifies the symbols logically bound to the keys */
- Atom types; /* identifies the set of key types */
- Atom compat; /* identifies actions for keys using core protocol */
- Atom vmods[XkbNumVirtualMods]; /* symbolic names for virtual modifiers */
- Atom indicators[XkbNumIndicators]; /* symbolic names for indicators */
- Atom groups[XkbNumKbdGroups]; /* symbolic names for keyboard groups */
- XkbKeyNamePtr keys; /* symbolic key name array */
- XkbKeyAliasPtr key_aliases; /* real/alias symbolic name pairs array */
- Atom * radio_groups; /* radio group name array */
- Atom phys_symbols; /* identifies the symbols engraved on the keyboard */
- unsigned char num_keys; /* number of keys in the keys array */
- unsigned char num_key_aliases; /* number of keys in the
- key_aliases array */
- unsigned short num_rg; /* number of radio groups */
-} XkbNamesRec,*XkbNamesPtr; /*
+ Atom keycodes; /* identifies range and meaning
+ of keycodes */
+ Atom geometry; /* identifies physical location,
+ size, and shape of keys */
+ Atom symbols; /* identifies the symbols logically
+ bound to the keys */
+ Atom types; /* identifies the set of key types */
+ Atom compat; /* identifies actions for keys using
+ core protocol */
+ Atom vmods[XkbNumVirtualMods]; /* symbolic names for
+ virtual modifiers */
+ Atom indicators[XkbNumIndicators]; /* symbolic names
+ for indicators */
+ Atom groups[XkbNumKbdGroups]; /* symbolic names for
+ keyboard groups */
+ XkbKeyNamePtr keys; /* symbolic key name array */
+ XkbKeyAliasPtr key_aliases; /* real/alias symbolic name pairs array */
+ Atom * radio_groups; /* radio group name array */
+ Atom phys_symbols; /* identifies the symbols engraved
+ on the keyboard */
+ unsigned char num_keys; /* number of keys in the keys array */
+ unsigned char num_key_aliases; /* number of keys in the
+ key_aliases array */
+ unsigned short num_rg; /* number of radio groups */
+} XkbNamesRec, *XkbNamesPtr;
@@ -640,34 +641,30 @@ The
XkbNameChangesRec
allows applications to identify small modifications to the symbolic names and
effectively reduces the amount of traffic sent to the server:
-
-
+
typedef struct _XkbNameChanges {
- unsigned int changed; /* name components that have
- changed */
- unsigned char first_type; /* first key type with a new
- name */
- unsigned char num_types; /* number of types with new
- names */
- unsigned char first_lvl; /* first key type with new level
- names */
- unsigned char num_lvls; /* number of key types with new
- level names */
- unsigned char num_aliases; /* if key aliases changed,
- total number of key aliases */
- unsigned char num_rg; /* if radio groups changed, total
- number of radio groups */
- unsigned char first_key; /* first key with a new name */
- unsigned char num_keys; /* number of keys with new names
- */
- unsigned short changed_vmods; /* mask of virtual
- modifiers for which names have changed */
- unsigned long changed_indicators; /* mask of indicators
- for which names were changed */
- unsigned char changed_groups; /* mask of groups for
- which names were changed */
-} XkbNameChangesRec, *XkbNameChangesPtr
+ unsigned int changed; /* name components that have
+ changed */
+ unsigned char first_type; /* first key type with a new name */
+ unsigned char num_types; /* number of types with new names */
+ unsigned char first_lvl; /* first key type with new level
+ names */
+ unsigned char num_lvls; /* number of key types with new
+ level names */
+ unsigned char num_aliases; /* if key aliases changed,
+ total number of key aliases */
+ unsigned char num_rg; /* if radio groups changed, total
+ number of radio groups */
+ unsigned char first_key; /* first key with a new name */
+ unsigned char num_keys; /* number of keys with new names */
+ unsigned short changed_vmods; /* mask of virtual modifiers
+ for which names have changed */
+ unsigned long changed_indicators; /* mask of indicators
+ for which names were changed */
+ unsigned char changed_groups; /* mask of groups for
+ which names were changed */
+} XkbNameChangesRec, *XkbNameChangesPtr;
@@ -871,39 +868,35 @@ and
The structure for the
XkbNamesNotify
event is defined as follows:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for
- event */
- Bool send_event; /* True
- ⇒ synthetically generated */
- Display * display; /* server connection where event
- generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbNamesNotify */
- int device; /* Xkb device ID, will not be
- XkbUseCoreKbd */
- unsigned int changed; /* mask of name components
-that have changed */
- int first_type; /* first key type with a new name */
- int num_types; /* number of types with new names */
- int first_lvl; /* first key type with new level names */
- int num_lvls; /* number of key types with new level names */
- int num_aliases; /* if key aliases changed, total number
- of key aliases */
- int num_radio_groups; /* if radio groups changed,
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbNamesNotify */
+ int device; /* Xkb device ID, will not be
+ XkbUseCoreKbd */
+ unsigned int changed; /* mask of name components
+ that have changed */
+ int first_type; /* first key type with a new name */
+ int num_types; /* number of types with new names */
+ int first_lvl; /* first key type with new level names */
+ int num_lvls; /* number of key types with new level names */
+ int num_aliases; /* if key aliases changed, total number
+ of key aliases */
+ int num_radio_groups; /* if radio groups changed,
total number of radio groups */
- unsigned int changed_vmods; /* mask of virtual modifiers for
- which names have changed */
- unsigned int changed_groups; /* mask of groups for
- which names were changed */
- unsigned int changed_indicators; /* mask of indicators for which
- names were changed */
- int first_key; /* first key with a new name */
- int num_keys; /* number of keys with new names */
+ unsigned int changed_vmods; /* mask of virtual modifiers for
+ which names have changed */
+ unsigned int changed_groups; /* mask of groups for
+ which names were changed */
+ unsigned int changed_indicators; /* mask of indicators for which
+ names were changed */
+ int first_key; /* first key with a new name */
+ int num_keys; /* number of keys with new names */
} XkbNamesNotifyEvent;
diff --git a/specs/XKB/ch19.xml b/specs/XKB/ch19.xml
index 8c0202b8..8b622ac1 100644
--- a/specs/XKB/ch19.xml
+++ b/specs/XKB/ch19.xml
@@ -165,26 +165,24 @@ Xkb events are discarded, and no Xkb requests have their keycode range clamped.
The structure for the
XkbNewKeyboardNotify
event is defined as follows:
-
-
+
typedef struct _XkbNewKeyboardNotify {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event*/
- Bool send_event; /* True
- ⇒ synthetically generated */
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbNewKeyboardNotify */
- int device; /* device ID of new keyboard */
- int old_device; /* device ID of old keyboard */
- int min_key_code; /* min keycode of new keyboard */
- int max_key_code; /* max keycode of new keyboard */
- int old_min_key_code; /* min keycode of old keyboard */
- int old_max_key_code; /* max keycode of old keyboard */
- unsigned int changed; /* changed aspects - see masks below */
- char req_major; /* major request that caused change */
- char req_minor; /* minor request that caused change */
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbNewKeyboardNotify */
+ int device; /* device ID of new keyboard */
+ int old_device; /* device ID of old keyboard */
+ int min_key_code; /* min keycode of new keyboard */
+ int max_key_code; /* max keycode of new keyboard */
+ int old_min_key_code; /* min keycode of old keyboard */
+ int old_max_key_code; /* max keycode of old keyboard */
+ unsigned int changed; /* changed aspects - see masks below */
+ char req_major; /* major request that caused change */
+ char req_minor; /* minor request that caused change */
} XkbNewKeyboardNotifyEvent;
diff --git a/specs/XKB/ch20.xml b/specs/XKB/ch20.xml
index 48d260f2..d6400f18 100644
--- a/specs/XKB/ch20.xml
+++ b/specs/XKB/ch20.xml
@@ -299,47 +299,42 @@ using standard
and
free
calls or their equivalent:
-
-
+
typedef struct _XkbComponentNames {
- char * keymap; /* keymap names */
- char * keycodes; /* keycode names */
- char * types; /* type names */
- char * compat; /* compatibility map names */
- char * symbols; /* symbol names */
- char * geometry; /* geometry names */
+ char * keymap; /* keymap names */
+ char * keycodes; /* keycode names */
+ char * types; /* type names */
+ char * compat; /* compatibility map names */
+ char * symbols; /* symbol names */
+ char * geometry; /* geometry names */
} XkbComponentNamesRec, *XkbComponentNamesPtr;
XkbListComponents
returns a pointer to an
-XkbComponentListRec
-:
-
+XkbComponentListRec:
-
+
typedef struct _XkbComponentList {
- int num_keymaps; /* number of entries in keymap */
- int num_keycodes; /* number of entries in keycodes */
- int num_types; /* number of entries in types */
- int num_compat; /* number of entries in compat */
- int num_symbols; /* number of entries in symbols */
- int num_geometry; /* number of entries in geometry;
- XkbComponentNamePtr keymap; /* keymap names */
- XkbComponentNamePtr keycodes; /* keycode names */
- XkbComponentNamePtr types; /* type names */
- XkbComponentNamePtr compat; /* compatibility map names */
- XkbComponentNamePtr symbols; /* symbol names */
- XkbComponentNamePtr geometry; /* geometry names */
+ int num_keymaps; /* number of entries in keymap */
+ int num_keycodes; /* number of entries in keycodes */
+ int num_types; /* number of entries in types */
+ int num_compat; /* number of entries in compat */
+ int num_symbols; /* number of entries in symbols */
+ int num_geometry; /* number of entries in geometry;
+ XkbComponentNamePtr keymap; /* keymap names */
+ XkbComponentNamePtr keycodes; /* keycode names */
+ XkbComponentNamePtr types; /* type names */
+ XkbComponentNamePtr compat; /* compatibility map names */
+ XkbComponentNamePtr symbols; /* symbol names */
+ XkbComponentNamePtr geometry; /* geometry names */
} XkbComponentListRec, *XkbComponentListPtr;
-
-
typedef struct _XkbComponentName {
- unsigned short flags; /* hints regarding component name */
- char * name; /* name of component */
+ unsigned short flags; /* hints regarding component name */
+ char * name; /* name of component */
} XkbComponentNameRec, *XkbComponentNamePtr;
diff --git a/specs/XKB/ch21.xml b/specs/XKB/ch21.xml
index a017ea7a..79a51bc3 100644
--- a/specs/XKB/ch21.xml
+++ b/specs/XKB/ch21.xml
@@ -162,40 +162,36 @@ Information about X Input Extension devices is transferred between a client
program and the Xkb extension in an
XkbDeviceInfoRec
structure:
-
-
+
typedef struct {
- char * name; /* name for device */
- Atom type; /* name for class of devices */
- unsigned short device_spec; /* device of interest */
- Bool has_own_state; /* True ⇒this
- device has its own state */
- unsigned short supported; /* bits indicating supported capabilities */
- unsigned short unsupported; /* bits indicating unsupported capabilities */
- unsigned short num_btns; /* number of entries in btn_acts */
- XkbAction * btn_acts; /* button actions */
- unsigned short sz_leds; /* total number of entries in LEDs vector */
- unsigned short num_leds; /* number of valid entries in LEDs vector */
- unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
- unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
- XkbDeviceLedInfoPtr leds; /* LED descriptions */
+ char * name; /* name for device */
+ Atom type; /* name for class of devices */
+ unsigned short device_spec; /* device of interest */
+ Bool has_own_state; /* True ⇒ this device has
+ its own state */
+ unsigned short supported; /* bits indicating supported capabilities */
+ unsigned short unsupported; /* bits indicating unsupported capabilities */
+ unsigned short num_btns; /* number of entries in btn_acts */
+ XkbAction * btn_acts; /* button actions */
+ unsigned short sz_leds; /* total number of entries in LEDs vector */
+ unsigned short num_leds; /* number of valid entries in LEDs vector */
+ unsigned short dflt_kbd_fb; /* input extension ID of default
+ (core kbd) indicator */
+ unsigned short dflt_led_fb; /* input extension ID of default
+ indicator feedback */
+ XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
-
-
typedef struct {
- unsigned short led_class; /* class for this LED device*/
- unsigned short led_id; /* ID for this LED device */
- unsigned int phys_indicators; /* bits for which LEDs physically
- present */
- unsigned int maps_present; /* bits for which LEDs have maps in
- maps */
- unsigned int names_present; /* bits for which LEDs are in
- names */
- unsigned int state; /* 1 bit ⇒ corresponding LED is on */
- Atom names[XkbNumIndicators]; /* names for LEDs */
- XkbIndicatorMapRec maps; /* indicator maps for each LED */
+ unsigned short led_class; /* class for this LED device */
+ unsigned short led_id; /* ID for this LED device */
+ unsigned int phys_indicators; /* bits for which LEDs physically present */
+ unsigned int maps_present; /* bits for which LEDs have maps in maps */
+ unsigned int names_present; /* bits for which LEDs are in names */
+ unsigned int state; /* 1 bit ⇒ corresponding LED is on */
+ Atom names[XkbNumIndicators]; /* names for LEDs */
+ XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
@@ -1759,29 +1755,26 @@ The
The structure for
XkbExtensionDeviceNotify
events is:
-
-
+
typedef struct {
- int type; /* Xkb extension base event code */
- unsigned long serial; /* X server serial number for event */
- Bool send_event; /* True
- ⇒ synthetically generated*/
- Display * display; /* server connection where event generated */
- Time time; /* server time when event generated */
- int xkb_type; /* XkbExtensionDeviceNotifyEvent */
- int device; /* Xkb device ID, will not be
- XkbUseCoreKbd */
- unsigned int reason; /* reason for the event */
- unsigned int supported; /* mask of supported features */
- unsigned int unsupported; /* unsupported features this client
+ int type; /* Xkb extension base event code */
+ unsigned long serial; /* X server serial number for event */
+ Bool send_event; /* True ⇒ synthetically generated */
+ Display * display; /* server connection where event generated */
+ Time time; /* server time when event generated */
+ int xkb_type; /* XkbExtensionDeviceNotifyEvent */
+ int device; /* Xkb device ID, will not be XkbUseCoreKbd */
+ unsigned int reason; /* reason for the event */
+ unsigned int supported; /* mask of supported features */
+ unsigned int unsupported; /* unsupported features this client
attempted to use */
- int first_btn; /* first button that changed */
- int num_btns; /* number of buttons that changed */
- unsigned int leds_defined; /* indicators with names or maps */
- unsigned int led_state; /* current state of the indicators */
- int led_class; /* feedback class for LED changes */
- int led_id; /* feedback ID for LED changes */
+ int first_btn; /* first button that changed */
+ int num_btns; /* number of buttons that changed */
+ unsigned int leds_defined; /* indicators with names or maps */
+ unsigned int led_state; /* current state of the indicators */
+ int led_class; /* feedback class for LED changes */
+ int led_id; /* feedback ID for LED changes */
} XkbExtensionDeviceNotifyEvent;
@@ -1807,27 +1800,24 @@ Changes to an Xkb extension device may be tracked by listening to
structure. The changes noted in the structure may then be used in subsequent
operations to update either a server configuration or a local copy of an Xkb
extension device configuration. The changes structure is defined as follows:
-
-
+
typedef struct _XkbDeviceChanges {
- unsigned int changed; /* bits indicating what has changed */
- unsigned short first_btn; /* number of first button which changed,
- if any */
- unsigned short num_btns; /* number of buttons that have changed */
- XkbDeviceLedChangesRec leds;
-} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
-
+ unsigned int changed; /* bits indicating what has changed */
+ unsigned short first_btn; /* number of first button which changed,
+ if any */
+ unsigned short num_btns; /* number of buttons that have changed */
+ XkbDeviceLedChangesRec leds;
+} XkbDeviceChangesRec, *XkbDeviceChangesPtr;
-
typedef struct _XkbDeviceLedChanges {
- unsigned short led_class; /* class of this indicator feedback bundle */
- unsigned short led_id; /* ID of this indicator feedback bundle */
- unsigned int names; /* bits indicating which names have changed */
- unsigned int maps; /* bits indicating which maps have changed */
- struct _XkbDeviceLedChanges *next; /* link to indicator change record
- for next set */
-} XkbDeviceLedChangesRec,*XkbDeviceLedChangesPtr;
+ unsigned short led_class; /* class of this indicator feedback bundle */
+ unsigned short led_id; /* ID of this indicator feedback bundle */
+ unsigned int names; /* bits indicating which names have changed */
+ unsigned int maps; /* bits indicating which maps have changed */
+ struct _XkbDeviceLedChanges *next; /* link to indicator change record
+ for next set */
+} XkbDeviceLedChangesRec, *XkbDeviceLedChangesPtr;