sync with OpenBSD -current

This commit is contained in:
purplerain 2024-07-12 14:44:09 +02:00
parent 2d1e52c274
commit b5b25afdb8
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
657 changed files with 21464 additions and 54675 deletions

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, Oracle and/or its affiliates.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),

View file

@ -15,7 +15,7 @@
@SET_MAKE@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, Oracle and/or its affiliates.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@ -250,6 +250,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -243,6 +243,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -250,6 +250,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -1346,15 +1346,11 @@ field of the indicators structure. The only way to change the
field is to change the keyboard map.</para></note>
<para>
There are two ways to make changes to indicator maps and state: either change a
To make changes to indicator maps and state, change a
local copy of the indicator maps and use
<function>XkbSetIndicatorMap</function>
or
<function>XkbSetNamedDeviceIndicator</function>,
or, to reduce network traffic, use an
<structname>XkbIndicatorChangesRec</structname>
structure and use
<function>XkbChangeIndicators</function>.
<function>XkbSetNamedDeviceIndicator</function>.
</para>
@ -1852,135 +1848,7 @@ and returns the value which was returned by
</para>
</sect2>
<sect2 id='XkbIndicatorChangesRec'>
<title>The XkbIndicatorChangesRec Structure</title>
<indexterm significance="preferred" zone="XkbIndicatorChangesRec">
<primary><structname>XkbIndicatorChangesRec</structname></primary></indexterm>
<para>
The
<structname>XkbIndicatorChangesRec</structname>
identifies small modifications to the indicator map. Use it with the function
<function>XkbChangeIndicators</function>
to reduce the amount of traffic sent to the server.
</para>
<para><programlisting>
typedef struct _XkbIndicatorChanges {
unsigned int state_changes;
unsigned int map_changes;
} <structname>XkbIndicatorChangesRec</structname>,*XkbIndicatorChangesPtr;
</programlisting></para>
<para>
The
<structfield>state_changes</structfield>
field is a mask that specifies the indicators that have changed state, and
<structfield>map_changes</structfield>
is a mask that specifies the indicators whose maps have changed.
</para>
<para>
To change indicator maps or state without passing the entire keyboard
description, use
<function>XkbChangeIndicators</function>.
</para>
<indexterm significance="preferred" zone="XkbChangeIndicators"><primary><function>XkbChangeIndicators</function></primary></indexterm>
<funcsynopsis id="XkbChangeIndicators">
<funcprototype>
<funcdef>Bool <function>XkbChangeIndicators</function></funcdef>
<!-- (
<parameter>dpy, xkb, changes, state</parameter>
) -->
<paramdef>Display *<parameter>dpy</parameter></paramdef>
<paramdef>XkbDescPtr <parameter>xkb</parameter></paramdef>
<paramdef>XkbIndicatorChangesPtr <parameter>changes</parameter></paramdef>
<paramdef>unsigned int <parameter>state</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>dpy</parameter>
</term>
<listitem>
<para>
connection to the X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>xkb</parameter>
</term>
<listitem>
<para>
keyboard description from which names are to be taken.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>changes</parameter>
</term>
<listitem>
<para>
indicators to be updated on the server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>state</parameter>
</term>
<listitem>
<para>
new state of indicators listed in <parameter>changes</parameter>-&gt;<structfield>state_changes</structfield>
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbChangeIndicators</function>
copies any maps specified by
<parameter>changes</parameter>
from the keyboard description,
<parameter>xkb</parameter>,
to the server specified by
<parameter>dpy</parameter>.
If any bits are set in the
<structfield>state_changes</structfield>
field of
<parameter>changes</parameter>,
<function>XkbChangeIndicators</function>
also sets the state of those indicators to the values specified in the
<parameter>state</parameter>
mask. A 1 bit in
<parameter>state</parameter>
turns the corresponding indicator on, a 0 bit turns it off.
</para>
<para>
<function>XkbChangeIndicators</function>
can generate
<errorname>BadAtom</errorname>
and
<errorname>BadImplementation</errorname>
errors. In addition, it can also generate
<symbol>XkbIndicatorStateNotify</symbol>
and
<symbol>XkbIndicatorMapNotify</symbol>
events (see <link linkend="Tracking_Changes_to_Indicator_State_or_Map">section 8.5</link>).
</para>
</sect2>
</sect1>
<sect1 id='Tracking_Changes_to_Indicator_State_or_Map'>
<title>Tracking Changes to Indicator State or Map</title>
@ -2091,189 +1959,6 @@ have changed or not, for both
and <symbol>XkbIndicatorMapNotify</symbol> events.
</para>
<para>
When your client application receives either a
<symbol>XkbIndicatorStateNotify</symbol>
event or
<symbol>XkbIndicatorMapNotify</symbol>
event, you can note the changes in a changes structure by calling
<function>XkbNoteIndicatorChanges</function>.
</para>
<indexterm significance="preferred" zone="XkbNoteIndicatorChanges"><primary><function>XkbNoteIndicatorChanges</function></primary></indexterm>
<funcsynopsis id="XkbNoteIndicatorChanges">
<funcprototype>
<funcdef>void <function>XkbNoteIndicatorChanges</function></funcdef>
<!-- (
<parameter>old</parameter>,
<parameter>new</parameter>,
<parameter>wanted</parameter>
) -->
<paramdef>XkbIndicatorChangesPtr <parameter>old</parameter></paramdef>
<paramdef>XkbIndicatorNotifyEvent *<parameter>new</parameter></paramdef>
<paramdef>unsigned int <parameter>wanted</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>old</parameter>
</term>
<listitem>
<para>
XkbIndicatorChanges structure to be updated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>new</parameter>
</term>
<listitem>
<para>
event from which changes are to be copied
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>wanted</parameter>
</term>
<listitem>
<para>
which changes are to be noted
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The
<parameter>wanted</parameter>
parameter is the bitwise inclusive OR of
<symbol>XkbIndicatorMapMask</symbol>
and
<emphasis>XkbIndicatorStateMask</emphasis>.
<function>XkbNoteIndicatorChanges</function>
copies any changes reported in
<parameter>new</parameter>
and specified in
<parameter>wanted</parameter>
into the changes record specified by
<parameter>old</parameter>.
</para>
<para>
To update a local copy of the keyboard description with the actual values, pass
the results of one or more calls to
<function>XkbNoteIndicatorChanges</function>
to
<function>XkbGetIndicatorChanges</function>:
</para>
<indexterm significance="preferred" zone="XkbGetIndicatorChanges"><primary><function>XkbGetIndicatorChanges</function></primary></indexterm>
<funcsynopsis id="XkbGetIndicatorChanges">
<funcprototype>
<funcdef>Status <function>XkbGetIndicatorChanges</function></funcdef>
<!-- (
<parameter>dpy</parameter>,
<parameter>xkb</parameter>,
<parameter>changes</parameter>,
<parameter>state</parameter>
) -->
<paramdef>Display *<parameter>dpy</parameter></paramdef>
<paramdef>XkbDescPtr <parameter>xkb</parameter></paramdef>
<paramdef>XkbIndicatorChangesPtr <parameter>changes</parameter></paramdef>
<paramdef>unsigned int *<parameter>state</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>dpy</parameter>
</term>
<listitem>
<para>
connection to the X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>xkb</parameter>
</term>
<listitem>
<para>
keyboard description to hold the new values
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>changes</parameter>
</term>
<listitem>
<para>
indicator maps/state to be obtained from the server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>state</parameter>
</term>
<listitem>
<para>
backfilled with the state of the indicators
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetIndicatorChanges</function>
examines the
<parameter>changes</parameter>
parameter, pulls over the necessary information from the server, and copies
the results into the
<parameter>xkb</parameter>
keyboard description. If any bits are set in the
<structfield>state_changes</structfield>
field of
<parameter>changes</parameter>,
<function>XkbGetIndicatorChanges</function>
also places the state of those indicators in
<parameter>state</parameter>.
If the
<structfield>indicators</structfield>
field of
<parameter>xkb</parameter>
is
<symbol>NULL</symbol>,
<function>XkbGetIndicatorChanges</function>
allocates and initializes it. To free the
<structfield>indicators</structfield>
field, use
<function>XkbFreeIndicatorMaps</function>
(see <link linkend="Allocating_and_Freeing_Indicator_Maps">section 8.6</link>).
</para>
<para>
<function>XkbGetIndicatorChanges</function>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadImplementation</errorname>,
and
<errorname>BadMatch</errorname>
errors.
</para>
</sect1>
<sect1 id='Allocating_and_Freeing_Indicator_Maps'>
<title>Allocating and Freeing Indicator Maps</title>

View file

@ -1617,275 +1617,22 @@ event. For more information on
events, refer to <link linkend="Tracking_Changes_to_Keyboard_Controls">section 10.11</link>.
</para>
<para>
Use
<function>XkbGetAccessXTimeout</function>
to query the current
There are no convenience functions in Xkb for manipulating this control. The
<emphasis>AccessXTimeout</emphasis>
options for a keyboard device.
</para>
<indexterm significance="preferred" zone="XkbGetAccessXTimeout"><primary><function>XkbGetAccessXTimeout</function></primary></indexterm>
<funcsynopsis id="XkbGetAccessXTimeout">
<funcprototype>
<funcdef>Bool <function>XkbGetAccessXTimeout</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>timeout_rtrn</parameter>,
<parameter>ctrls_mask_rtrn</parameter>,
<parameter>ctrls_values_rtrn</parameter>,
<parameter>options_mask_rtrn, options_values_rtrn</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned short *<parameter>timeout_rtrn</parameter></paramdef>
<paramdef>unsigned int *<parameter>ctrls_mask_rtrn</parameter></paramdef>
<paramdef>unsigned int *<parameter>ctrls_values_rtrn</parameter></paramdef>
<paramdef>unsigned short *<parameter>opts_mask_rtrn</parameter></paramdef>
<paramdef>unsigned short *<parameter>opts_values_rtrn</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device to query, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>timeout_rtrn</parameter>
</term>
<listitem>
<para>
delay until AccessXTimeout, seconds
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>ctrls_mask_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with controls to modify
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>ctrls_values_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with on/off status for controls
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>opts_mask_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with <structfield>ax_options</structfield> to modify
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>opts_values_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with values for <structfield>ax_options</structfield>
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetAccessXTimeout</function>
sends a request to the X server to obtain the current values for the
<emphasis>AccessXTimeout</emphasis>
attributes, waits for a reply, and backfills the values into the appropriate
arguments.
The parameters
<parameter>opts_mask_rtrn</parameter>
control settings are carried in the
<structfield>ax_timeout</structfield>,
<structfield>axt_opts_mask</structfield>,
<structfield>axt_opts_values</structfield>,
<structfield>axt_ctrls_mask</structfield>,
and
<parameter>opts_values_rtrn</parameter>
are backfilled with the options to modify and the values for
<structfield>ax_options</structfield>,
which is a field in the
<structfield>axt_ctrls_values</structfield>
fields of an
<structname>XkbControlsRec</structname>
structure (see <link linkend="The_XkbControlsRec_Structure">section 10.8</link>).
<function>XkbGetAccessXTimeout</function>
returns
<symbol>True</symbol>
if successful; if a compatible version of the Xkb extension is not available
in the server,
<function>XkbGetAccessXTimeout</function>
returns
<symbol>False</symbol>.
structure, discussed in <link linkend="The_XkbControlsRec_Structure">section 10.8</link>.
</para>
<para>
To configure the
<emphasis>AccessXTimeout</emphasis>
options for a keyboard device, use
<function>XkbSetAccessXTimeout</function>.
</para>
<indexterm significance="preferred" zone="XkbSetAccessXTimeout"><primary><function>XkbSetAccessXTimeout</function></primary></indexterm>
<funcsynopsis id="XkbSetAccessXTimeout">
<funcprototype>
<funcdef>Bool <function>XkbSetAccessXTimeout</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec, timeout, ctrls_mask, ctrls_values, opts_mask,
opts_values</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned short <parameter>timeout</parameter></paramdef>
<paramdef>unsigned int <parameter>ctrls_mask</parameter></paramdef>
<paramdef>unsigned int <parameter>ctrls_values</parameter></paramdef>
<paramdef>unsigned short <parameter>opts_mask</parameter></paramdef>
<paramdef>unsigned short <parameter>opts_values</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device to configure, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>timeout</parameter>
</term>
<listitem>
<para>
seconds idle until AccessXTimeout occurs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>ctrls_mask</parameter>
</term>
<listitem>
<para>
boolean controls to modify
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>ctrls_values</parameter>
</term>
<listitem>
<para>
new bits for controls selected by <parameter>ctrls_mask</parameter>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>opts_mask</parameter>
</term>
<listitem>
<para>
<structfield>ax_options</structfield> to change
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>opts_values</parameter>
</term>
<listitem>
<para>
new bits for <structfield>ax_options</structfield> selected by <parameter>opts_mask</parameter>
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<parameter>timeout</parameter>
specifies the number of seconds the keyboard must be idle before the controls
are modified.
<parameter>ctrls_mask</parameter>
specifies what controls are to be enabled or disabled, and
<parameter>ctrls_values</parameter>
specifies whether those controls are to be enabled or disabled. The bit values
correspond to those for enabling and disabling boolean controls
(see <link linkend="The_EnabledControls_Control">section 10.1.1</link>). The
<parameter>opts_mask</parameter>
field specifies which attributes of the
<emphasis>AccessXKeys</emphasis>
and
<emphasis>AccessXFeedback</emphasis>
controls are to be changed, and
<parameter>opts_values</parameter>
specifies the new values for those options. The bit values correspond to those
for the
<structfield>ax_options</structfield>
field of an
<structname>XkbDescRec</structname>
(see <link linkend="The_XkbControlsRec_Structure">section 10.8</link>).
</para>
<para>
<function>XkbSetAccessXTimeout</function>
sends a request to configure the
<emphasis>AccessXTimeout</emphasis>
control to the server.
It does not wait for a reply, and normally returns
<symbol>True</symbol>.
If a compatible version of the Xkb extension is not available in the server,
<function>XkbSetAccessXTimeout</function>
returns
<symbol>False</symbol>.
</para>
</sect2>
<sect2 id='The_AccessXFeedback_Control'>
@ -2285,159 +2032,15 @@ event (see <link linkend="AccessXNotify_Events">section 10.6.4</link>).
</para>
<para>
To get the
There are no convenience functions in Xkb for manipulating this control. The
<emphasis>SlowKeys</emphasis>
acceptance delay for a keyboard device, use
<function>XkbGetSlowKeysDelay</function>.
control settings are carried in the
<structfield>slow_keys_delay</structfield>
field of an
<structname>XkbControlsRec</structname>
structure, discussed in <link linkend="The_XkbControlsRec_Structure">section 10.8</link>.
</para>
<indexterm significance="preferred" zone="XkbGetSlowKeysDelay"><primary><function>XkbGetSlowKeysDelay</function></primary></indexterm>
<funcsynopsis id="XkbGetSlowKeysDelay">
<funcprototype>
<funcdef>Bool <function>XkbGetSlowKeysDelay</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>delay_rtrn</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int *<parameter>delay_rtrn</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device ID, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>delay_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with <emphasis>SlowKeys</emphasis> delay, ms
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetSlowKeysDelay</function>
requests the attributes of the
<emphasis>SlowKeys</emphasis>
control from the server, waits for a reply and backfills
<parameter>delay_rtrn</parameter>
with the
<emphasis>SlowKeys</emphasis>
delay attribute.
<function>XkbGetSlowKeysDelay</function>
returns
<symbol>True</symbol>
if successful; if a compatible version of the Xkb extension is not available
in the server,
<function>XkbGetSlowKeysDelay</function>
returns
<symbol>False</symbol>.
</para>
<para>
To set the
<emphasis>SlowKeys</emphasis>
acceptance delay for a keyboard device, use
<function>XkbSetSlowKeysDelay</function>.
</para>
<indexterm significance="preferred" zone="XkbSetSlowKeysDelay"><primary><function>XkbSetSlowKeysDelay</function></primary></indexterm>
<funcsynopsis id="XkbSetSlowKeysDelay">
<funcprototype>
<funcdef>Bool <function>XkbSetSlowKeysDelay</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>delay</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int <parameter>delay</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device to configure, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>delay</parameter>
</term>
<listitem>
<para>
<emphasis>SlowKeys</emphasis> delay, ms
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbSetSlowKeysDelay</function>
sends a request to configure the
<emphasis>SlowKeys</emphasis>
control to the server.
It does not wait for a reply, and normally returns
<symbol>True</symbol>.
Specifying a value of
<literal>0</literal>
for the
<parameter>delay</parameter>
parameter causes
<function>XkbSetSlowKeysDelay</function>
to generate a
<errorname>BadValue</errorname>
protocol error. If a compatible version of the Xkb extension is not available
in the server
<function>XkbSetSlowKeysDelay</function>
returns
<symbol>False</symbol>.
</para>
</sect2>
<sect2 id='The_BounceKeys_Control'>
<title>The BounceKeys Control</title>
@ -2466,157 +2069,13 @@ event (see <link linkend="AccessXNotify_Events">section 10.6.4</link>).
<para>
Use
<function>XkbGetBounceKeysDelay</function>
to query the current
There are no convenience functions in Xkb for manipulating this control. The
<emphasis>BounceKeys</emphasis>
delay for a keyboard device.
</para>
<indexterm significance="preferred" zone="XkbGetBounceKeysDelay"><primary><function>XkbGetBounceKeysDelay</function></primary></indexterm>
<funcsynopsis id="XkbGetBounceKeysDelay">
<funcprototype>
<funcdef>Bool <function>XkbGetBounceKeysDelay</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>delay_rtrn</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int *<parameter>delay_rtrn</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device ID, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>delay_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with bounce keys delay, ms
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetBounceKeysDelay</function>
requests the attributes of the
<emphasis>BounceKeys</emphasis>
control from the server, waits for a reply, and backfills
<parameter>delay_rtrn</parameter>
with the
<emphasis>BounceKeys</emphasis>
delay attribute.
<function>XkbGetBounceKeysDelay</function>
returns
<symbol>True</symbol>
if successful; if a compatible version of the Xkb extension is not available
in the server
<function>XkbGetSlowKeysDelay</function>
returns
<symbol>False</symbol>.
</para>
<para>
To set the
<emphasis>BounceKeys</emphasis>
delay for a keyboard device, use
<function>XkbSetBounceKeysDelay</function>.
</para>
<indexterm significance="preferred" zone="XkbSetBounceKeysDelay"><primary><function>XkbSetBounceKeysDelay</function></primary></indexterm>
<funcsynopsis id="XkbSetBounceKeysDelay">
<funcprototype>
<funcdef>Bool <function>XkbSetBounceKeysDelay</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>delay</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int <parameter>delay</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device to configure, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>delay</parameter>
</term>
<listitem>
<para>
bounce keys delay, ms
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbSetBounceKeysDelay</function>
sends a request to configure the
<emphasis>BounceKeys</emphasis>
control to the server.
It does not wait for a reply and normally returns
<symbol>True</symbol>.
Specifying a value of
<emphasis>zero</emphasis>
for the
<parameter>delay</parameter>
parameter causes
<function>XkbSetBounceKeysDelay</function>
to generate a
<errorname>BadValue</errorname>
protocol error. If a compatible version of the Xkb extension is not available
in the server,
<function>XkbSetBounceKeysDelay</function>
returns
<symbol>False</symbol>.
control settings are carried in the
<structfield>debounce_delay</structfield>
field of an
<structname>XkbControlsRec</structname>
structure, discussed in <link linkend="The_XkbControlsRec_Structure">section 10.8</link>.
</para>
</sect2>
@ -2756,183 +2215,14 @@ specifies whether or not
locks a modifier when pressed twice in a row.
</para>
<para>
Use
<function>XkbGetStickyKeysOptions</function>
to query the current
There are no convenience functions in Xkb for manipulating this control. The
<emphasis>StickyKeys</emphasis>
attributes for a keyboard device.
</para>
<indexterm significance="preferred" zone="XkbGetStickyKeysOptions"><primary><function>XkbGetStickyKeysOptions</function></primary></indexterm>
<funcsynopsis id="XkbGetStickyKeysOptions">
<funcprototype>
<funcdef>Bool <function>XkbGetStickyKeysOptions</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec</parameter>,
<parameter>options_rtrn</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int *<parameter>options_rtrn</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device ID, or <symbol>XkbUseCoreKbd</symbol>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>options_rtrn</parameter>
</term>
<listitem>
<para>
backfilled with StickyKeys option mask
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetStickyKeysOptions</function>
requests the attributes of the
<emphasis>StickyKeys</emphasis>
control from the server, waits for a reply, and backfills
<parameter>options_rtrn</parameter>
with a mask indicating whether the individual
<emphasis>StickyKeys</emphasis>
options are on or off. Valid bits in
<parameter>options_rtrn</parameter>
are:
<simplelist type='vert' columns='1'>
<member><symbol>XkbAX_TwoKeysMask</symbol></member>
<member><symbol>XkbAX_LatchToLockMask</symbol></member>
</simplelist>
</para>
<para>
<function>XkbGetStickyKeysOptions</function>
returns
<symbol>True</symbol>
if successful; if a compatible version of the Xkb extension is not available
in the server
<function>XkbGetStickyKeysOptions</function>
returns
<symbol>False</symbol>.
</para>
<para>
To set the
<emphasis>StickyKeys</emphasis>
attributes for a keyboard device, use
<function>XkbSetStickyKeysOptions</function>.
</para>
<indexterm significance="preferred" zone="XkbSetStickyKeysOptions"><primary><function>XkbSetStickyKeysOptions</function></primary></indexterm>
<funcsynopsis id="XkbSetStickyKeysOptions">
<funcprototype>
<funcdef>Bool <function>XkbSetStickyKeysOptions</function></funcdef>
<!-- (
<parameter>display</parameter>,
<parameter>device_spec, mask, values</parameter>
) -->
<paramdef>Display *<parameter>display</parameter></paramdef>
<paramdef>unsigned int <parameter>device_spec</parameter></paramdef>
<paramdef>unsigned int <parameter>mask</parameter></paramdef>
<paramdef>unsigned int <parameter>values</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>display</parameter>
</term>
<listitem>
<para>
connection to X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>device_spec</parameter>
</term>
<listitem>
<para>
device to configure, or XkbUseCoreKbd
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>mask</parameter>
</term>
<listitem>
<para>
selects StickyKeys attributes to modify
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>values</parameter>
</term>
<listitem>
<para>
values for selected attributes
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbSetStickyKeysOptions</function>
sends a request to configure the
<emphasis>StickyKeys</emphasis>
control to the server.
It does not wait for a reply and normally returns
<symbol>True</symbol>.
The valid bits to use for both the
<parameter>mask</parameter>
and
<parameter>values</parameter>
parameters are:
<simplelist type='vert' columns='1'>
<member><symbol>XkbAX_TwoKeysMask</symbol></member>
<member><symbol>XkbAX_LatchToLockMask</symbol></member>
</simplelist>
</para>
<para>
If a compatible version of the Xkb extension is not available in the server,
<function>XkbSetStickyKeysOptions</function>
returns
<symbol>False</symbol>.
control settings are carried in the
<structfield>ax_options</structfield>
field of an
<structname>XkbControlsRec</structname>
structure, discussed in <link linkend="The_XkbControlsRec_Structure">section 10.8</link>.
</para>
</sect3>

View file

@ -1304,10 +1304,10 @@ currently four); if a key has fewer than
<symbol>XkbNumKbdGroups</symbol>
groups, the extra key types are reported but ignored.</para></note>
<indexterm significance="preferred" zone="XkbKeyTypeIndex"><primary><function>XkbKeyTypeIndex</function></primary></indexterm>
<funcsynopsis id="XkbKeyTypeIndex">
<indexterm significance="preferred" zone="XkbKeyKeyTypeIndex"><primary><function>XkbKeyKeyTypeIndex</function></primary></indexterm>
<funcsynopsis id="XkbKeyKeyTypeIndex">
<funcprototype>
<funcdef>int <function>XkbKeyTypeIndex</function></funcdef>
<funcdef>int <function>XkbKeyKeyTypeIndex</function></funcdef>
<!-- (
<parameter>xkb, keycode, group</parameter>
) /* macro*/ -->
@ -1351,7 +1351,7 @@ groups, the extra key types are reported but ignored.</para></note>
</variablelist>
<para>
<function>XkbKeyTypeIndex</function>
<function>XkbKeyKeyTypeIndex</function>
computes an index into the
<structfield>types</structfield>
vector of the client map in
@ -1364,10 +1364,10 @@ index.
</para>
<indexterm significance="preferred" zone="XkbKeyType"><primary><function>XkbKeyType</function></primary></indexterm>
<funcsynopsis id="XkbKeyType">
<indexterm significance="preferred" zone="XkbKeyKeyType"><primary><function>XkbKeyKeyType</function></primary></indexterm>
<funcsynopsis id="XkbKeyKeyType">
<funcprototype>
<funcdef>XkbKeyTypePtr <function>XkbKeyType</function></funcdef>
<funcdef>XkbKeyTypePtr <function>XkbKeyKeyType</function></funcdef>
<!-- (
<parameter>xkb, keycode, group</parameter>
) /* macro */ -->
@ -1411,7 +1411,7 @@ index.
</variablelist>
<para>
<function>XkbKeyType</function>
<function>XkbKeyKeyType</function>
returns a pointer to the key type in the
<structfield>types</structfield>
vector of the client map in
@ -1726,8 +1726,6 @@ entry for a key is used to access the beginning of the array.
<para>
Xkb provides the following macros for accessing the
<structfield>width</structfield>
and
<structfield>offset</structfield>
for individual keys, as well as macros for accessing the two-dimensional array
of symbols bound to the key:
</para>
@ -1829,49 +1827,6 @@ for the key corresponding to
</para>
<indexterm significance="preferred" zone="XkbKeySymsOffset"><primary><function>XkbKeySymsOffset</function></primary></indexterm>
<funcsynopsis id="XkbKeySymsOffset">
<funcprototype>
<funcdef>int <function>XkbKeySymsOffset</function></funcdef>
<!-- (
<parameter>xkb, keycode</parameter>
) /* macro */ -->
<paramdef>XkbDescPtr <parameter>xkb</parameter></paramdef>
<paramdef>KeyCode <parameter>keycode</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>xkb</parameter>
</term>
<listitem>
<para>
Xkb description of interest
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>keycode</parameter>
</term>
<listitem>
<para>
keycode of interest
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbKeySymsOffset</function>
returns the offset of the two-dimensional array of keysyms for the key
corresponding to
<parameter>keycode</parameter>.
</para>
<indexterm significance="preferred" zone="XkbKeyNumSyms"><primary><function>XkbKeyNumSyms</function></primary></indexterm>
<funcsynopsis id="XkbKeyNumSyms">
<funcprototype>

View file

@ -2852,10 +2852,10 @@ converted to an unsigned int.
</para>
<indexterm significance="preferred" zone="XkbSAActionSetCtrls"><primary><function>XkbSAActionSetCtrls</function></primary></indexterm>
<funcsynopsis id="XkbSAActionSetCtrls">
<indexterm significance="preferred" zone="XkbActionSetCtrls"><primary><function>XkbActionSetCtrls</function></primary></indexterm>
<funcsynopsis id="XkbActionSetCtrls">
<funcprototype>
<funcdef>void <function>XkbSAActionSetCtrls</function></funcdef>
<funcdef>void <function>XkbActionSetCtrls</function></funcdef>
<!-- (
<parameter>act, ctrls</parameter>
) /* macro */ -->
@ -2888,7 +2888,7 @@ converted to an unsigned int.
</variablelist>
<para>
<function>XkbSAActionSetCtrls</function>
<function>XkbActionSetCtrls</function>
sets the
<structfield>ctrls0</structfield>
through

View file

@ -993,85 +993,6 @@ into the changes record specified by
</para>
<para>
To update the local copy of the keyboard description with the actual values,
pass to
<function>XkbGetNameChanges</function>
the results of one or more calls to
<function>XkbNoteNameChanges</function>.
</para>
<indexterm significance="preferred" zone="XkbGetNameChanges"><primary><function>XkbGetNameChanges</function></primary></indexterm>
<funcsynopsis id="XkbGetNameChanges">
<funcprototype>
<funcdef>Status <function>XkbGetNameChanges</function></funcdef>
<!-- (
<parameter>dpy</parameter>,
<parameter>xkb</parameter>,
<parameter>changes</parameter>
) -->
<paramdef>Display *<parameter>dpy</parameter></paramdef>
<paramdef>XkbDescPtr <parameter>xkb</parameter></paramdef>
<paramdef>XkbNameChangesPtr <parameter>changes</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>dpy</parameter>
</term>
<listitem>
<para>
connection to the X server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>xkb</parameter>
</term>
<listitem>
<para>
keyboard description to which names are copied
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>changes</parameter>
</term>
<listitem>
<para>
names components to be obtained from the server
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbGetNameChanges</function>
examines the
<parameter>changes</parameter>
parameter, retrieves the necessary information from the server, and places the
results into the
<parameter>xkb</parameter>
keyboard description.
</para>
<para>
<function>XkbGetNameChanges</function>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadImplementation</errorname>,
and
<errorname>BadMatch</errorname>
errors.
</para>
</sect1>
<sect1 id='Allocating_and_Freeing_Symbolic_Names'>
<title>Allocating and Freeing Symbolic Names</title>

View file

@ -1028,64 +1028,6 @@ explicitly.
</para>
<para>
To obtain an
<structname>XkbDeviceLedInfoRec</structname>
structure, use XkbAllocDeviceLedInfo.
</para>
<indexterm significance="preferred" zone="XkbAllocDeviceLedInfo"><primary><function>XkbAllocDeviceLedInfo</function></primary></indexterm>
<funcsynopsis id="XkbAllocDeviceLedInfo">
<funcprototype>
<funcdef>Status <function>XkbAllocDeviceLedInfo</function></funcdef>
<!-- (devi, num_needed) -->
<paramdef>XkbDeviceInfoPtr <parameter>device_info</parameter></paramdef>
<paramdef>int <parameter>num_needed</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>device_info</parameter>
</term>
<listitem>
<para>
structure in which to allocate LED space
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>num_needed</parameter>
</term>
<listitem>
<para>
number of indicators to allocate space for
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<function>XkbAllocDeviceLedInfo</function>
allocates space for an
<structname>XkbDeviceLedInfoRec</structname>
and places it in
<parameter>device_info</parameter>.
If num_needed is nonzero,
<parameter>num_needed</parameter>
<structname>XkbIndicatorMapRec</structname>
structures are also allocated and linked into the
<structname>XkbDeviceLedInfoRec</structname>
structure. If you request
<structname>XkbIndicatorMapRec</structname>
structures be allocated using this request, you must initialize them
explicitly. All other fields are initialized to zero.
</para>
<para>
To initialize an
<structname>XkbDeviceLedInfoRec</structname>

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, Oracle and/or its affiliates.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),

View file

@ -15,7 +15,7 @@
@SET_MAKE@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, Oracle and/or its affiliates.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@ -250,6 +250,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -244,6 +244,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -1,6 +1,6 @@
#! /usr/bin/perl
#
# Copyright 2009, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2009, 2010, Oracle and/or its affiliates.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),

View file

@ -241,6 +241,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -241,6 +241,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -241,6 +241,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@

View file

@ -8045,7 +8045,11 @@ set to
<symbol>XIMPreeditPosition</symbol>.
When specified to any input method other than
<symbol>XIMPreeditPosition</symbol>,
this <acronym>XIC</acronym> value is ignored.
this <acronym>XIC</acronym> value is ignored. Some Xlib implementations
will allow this to be set when
<symbol>XNInputStyle</symbol> is set to
<symbol>XIMPreeditCallbacks</symbol>. Behavior in that case is
implementation defined.
</para>
<para>
<!-- .LP -->

View file

@ -244,6 +244,7 @@ STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@
USE_THREAD_LIBS = @USE_THREAD_LIBS@
VERSION = @VERSION@
WCHAR32 = @WCHAR32@
X11_CFLAGS = @X11_CFLAGS@