XkbOutOfRangeGroupNumber

NAME

XkbOutOfRangeGroupNumber - Returns the out-of-range group number, represented
as a group index, from the group_info field of an XkbSymMapRec structure

SYNOPSIS

unsigned char XkbOutOfRangeGroupNumber(unsigned char grp_inf);

ARGUMENTS

- grp_inf

Xkb description of interest

DESCRIPTION

XkbOutOfRangeGroupNumber
returns the out-of-range group number, represented as a group index, from the
group_info
field of an XkbSymMapRec structure.

The
group_info
field of an XkbSymMapRec is an encoded value containing the number of groups of
symbols bound to the
key as well as the specification of the treatment of out-of-range groups. It is
legal for a key to
have zero groups, in which case it also has zero symbols and all events from
that key yield NoSymbol.
To obtain the number of groups of symbols bound to the key, use
XkbKeyNumGroups.
To change the number of groups bound to a key, use
XkbChangeTypesOfKey.
To obtain a mask that determines the treatment of out-of-range groups, use
XkbKeyGroupInfo
and
XkbOutOfRangeGroupInfo.

The keyboard controls contain a
groups_wrap
field specifying the handling of illegal groups on a global basis. That is, when
the user performs an
action causing the effective group to go out of the legal range, the
groups_wrap
field specifies how to normalize the effective keyboard group to a group that is
legal for the
keyboard as a whole, but there is no guarantee that the normalized group will be
within the range of
legal groups for any individual key. The per-key
group_info
field specifies how a key treats a legal effective group if the key does not
have a type specified for
the group of concern. For example, the Enter key usually has just one group
defined. If the user
performs an action causing the global keyboard group to change to Group2, the
group_info
field for the Enter key describes how to handle this situation.

Out-of-range groups for individual keys are mapped to a legal group using the
same options as are used
for the overall keyboard group. The particular type of mapping used is
controlled by the bits set in
the
group_info
flag, as shown in Table 1.