125b89263Smrg<?xml version="1.0" encoding="UTF-8" ?>
206f32fbeSmrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
306f32fbeSmrg                   "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
406f32fbeSmrg[
506f32fbeSmrg<!ENTITY % defs SYSTEM "defs.ent"> %defs;
606f32fbeSmrg]>
725b89263Smrg
825b89263Smrg
925b89263Smrg<!-- lifted from troff+ms+XMan by doclifter -->
1025b89263Smrg<book id="xtestlib">
1125b89263Smrg
1225b89263Smrg<bookinfo>
1325b89263Smrg   <title>XTEST Extension Library</title>
1425b89263Smrg   <subtitle>X Consortium Standard</subtitle>
1506f32fbeSmrg   <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo>
1606f32fbeSmrg   <releaseinfo>Version 2.2</releaseinfo>
1725b89263Smrg   <authorgroup>
1825b89263Smrg      <author>
1925b89263Smrg         <firstname>Kieron</firstname><surname>Drake</surname>
2006f32fbeSmrg         <affiliation><orgname>UniSoft Ltd.</orgname></affiliation>
2125b89263Smrg      </author>
2225b89263Smrg   </authorgroup>
2325b89263Smrg   <copyright><year>1992</year><holder>UniSoft Group Ltd.</holder></copyright>
2425b89263Smrg
2525b89263Smrg<legalnotice>
2625b89263Smrg<para>
2725b89263SmrgPermission to use, copy, modify, and distribute this documentation for
2825b89263Smrgany purpose and without fee is hereby granted, provided that the above
2925b89263Smrgcopyright notice and this permission notice appear in all copies.  UniSoft
3025b89263Smrgmakes no representations about the suitability for any purpose of the
3125b89263Smrginformation in this document.  This documentation is provided
3225b89263Smrg&ldquo;as is&rdquo; without express or implied warranty.
3325b89263Smrg</para>
3406f32fbeSmrg</legalnotice>
3525b89263Smrg
3606f32fbeSmrg<legalnotice>
3706f32fbeSmrg<para role="multiLicensing">Copyright © 1992,1994 X Consortium</para>
3825b89263Smrg<para>
3925b89263SmrgPermission is hereby granted, free of charge, to any person obtaining a copy
4025b89263Smrgof this software and associated documentation files
4125b89263Smrg(the &ldquo;Software&rdquo;), to deal in the Software without restriction,
4225b89263Smrgincluding without limitation the rights to use, copy, modify, merge, publish,
4325b89263Smrgdistribute, sublicense, and/or sell copies of the Software, and to permit
4425b89263Smrgpersons to whom the Software is furnished to do so, subject to the following
4525b89263Smrgconditions:
4625b89263Smrg</para>
4725b89263Smrg<para>
4825b89263SmrgThe above copyright notice and this permission notice shall be included in all
4925b89263Smrgcopies or substantial portions of the Software.
5025b89263Smrg</para>
5125b89263Smrg<para>
5225b89263SmrgTHE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND,
5325b89263SmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5425b89263SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN
5525b89263SmrgNO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5625b89263SmrgLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5725b89263SmrgOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
5825b89263SmrgTHE SOFTWARE.
5925b89263Smrg</para>
6025b89263Smrg<para>
6125b89263SmrgExcept as contained in this notice, the name of the X Consortium shall not
6225b89263Smrgbe used in advertising or otherwise to promote the sale, use or other dealings
6325b89263Smrgin this Software without prior written authorization from the X Consortium.
6425b89263Smrg</para>
6525b89263Smrg<para>X Window System is a trademark of The Open Group.</para>
6625b89263Smrg</legalnotice>
6725b89263Smrg</bookinfo>
6825b89263Smrg
6906f32fbeSmrg<chapter id='Overview'>
7025b89263Smrg<title>Overview</title>
7125b89263Smrg
7225b89263Smrg<para>
7325b89263SmrgThis extension is a minimal set of client and server extensions
7425b89263Smrgrequired to completely test the X11 server with no user intervention.
7525b89263Smrg</para>
7625b89263Smrg
7725b89263Smrg<para>
7825b89263SmrgThis extension is not intended to support general journaling and
7925b89263Smrgplayback of user actions.  This is a difficult area [XTrap, 89] as it attempts
8025b89263Smrgto synchronize synthetic user interactions with their effects; it is at the
8125b89263Smrghigher level of dialogue recording/playback rather than at the strictly lexical
8225b89263Smrglevel.  We are interested only in the latter, simpler, case.  A more detailed
8325b89263Smrgdiscussion and justification of the extension functionality is given in
8425b89263Smrg[Drake, 91].
8525b89263Smrg</para>
8625b89263Smrg
8725b89263Smrg<para>
8825b89263SmrgWe are aiming only to provide a minimum set of facilities that
8925b89263Smrgsolve immediate testing and validation problems.  The testing extension
9025b89263Smrgitself needs testing, where possible, and so should be as simple as possible.
9125b89263Smrg</para>
9225b89263Smrg
9325b89263Smrg<para>We have also tried to:</para>
9425b89263Smrg<itemizedlist mark='bullet'>
9525b89263Smrg  <listitem>
9625b89263Smrg    <para>
9725b89263SmrgConfine the extension to an appropriate high level
9825b89263Smrgwithin the server to minimize portability problems.  In practice this
9925b89263Smrgmeans that the extension should be at the DIX level or use the
10025b89263SmrgDIX/DDX interface, or both.  This has effects, in particular, on the
10125b89263Smrglevel at which "input synthesis" can occur.
10225b89263Smrg    </para>
10325b89263Smrg  </listitem>
10425b89263Smrg  <listitem>
10525b89263Smrg    <para>
10625b89263SmrgMinimize the changes required in the rest of the server.
10725b89263Smrg    </para>
10825b89263Smrg  </listitem>
10925b89263Smrg  <listitem>
11025b89263Smrg    <para>
11125b89263SmrgMinimize performance penalties on normal server operation.
11225b89263Smrg    </para>
11325b89263Smrg  </listitem>
11425b89263Smrg</itemizedlist>
11525b89263Smrg</chapter>
11625b89263Smrg
11706f32fbeSmrg<chapter id='Description'>
11825b89263Smrg<title>Description</title>
11925b89263Smrg
12025b89263Smrg<para>The functions provided by this extension fall into two groups:</para>
12125b89263Smrg
12225b89263Smrg<itemizedlist>
12325b89263Smrg    <listitem>
12425b89263Smrg      <para>Client Operations</para>
12525b89263Smrg      <para>
12625b89263SmrgThese routines manipulate otherwise hidden client-side behavior.
12725b89263SmrgThe actual implementation will depend on the details of the actual language
12825b89263Smrgbinding and what degree of request buffering, GContext caching, and so on, is
12925b89263Smrgprovided.  In the C binding, defined in section 7, routines are provided
13025b89263Smrgto access the internals of two opaque data structures -
13125b89263Smrg<symbol role='Pn'>GC</symbol>s
13225b89263Smrgand
13325b89263Smrg<function>Visual</function>s - and to discard any requests pending within the
13425b89263Smrgoutput buffer of a connection.  The exact details can be expected to differ for
13525b89263Smrgother language bindings.
13625b89263Smrg      </para>
13725b89263Smrg    </listitem>
13825b89263Smrg    <listitem>
13925b89263Smrg      <para>Server Requests</para>
14025b89263Smrg      <para>
14125b89263SmrgThe first of these requests is similar to that provided in most
14225b89263Smrgextensions: it allows a client to specify a major and minor version
14325b89263Smrgnumber to the server and for the server to respond with major and minor
14425b89263Smrgversions of its own.  The remaining two requests allow the following:
14525b89263Smrg      </para>
14625b89263Smrg    </listitem>
14725b89263Smrg    <listitem>
14825b89263Smrg      <itemizedlist>
14925b89263Smrg        <listitem>
15025b89263Smrg          <para>
15125b89263SmrgAccess to an otherwise "write-only" server resource: the
15225b89263Smrgcursor associated with a given window
15325b89263Smrg          </para>
15425b89263Smrg        </listitem>
15525b89263Smrg        <listitem>
15625b89263Smrg          <para>
15725b89263SmrgPerhaps most importantly, limited synthesis of input
15825b89263Smrgdevice events, almost as if a cooperative user had moved the pointing device
15925b89263Smrgor pressed a key or button.
16025b89263Smrg          </para>
16125b89263Smrg        </listitem>
16225b89263Smrg      </itemizedlist>
16325b89263Smrg    </listitem>
16425b89263Smrg</itemizedlist>
16525b89263Smrg</chapter>
16625b89263Smrg
16706f32fbeSmrg<chapter id='C_Language_Binding'>
16825b89263Smrg<title>C Language Binding</title>
16925b89263Smrg
17025b89263Smrg<para>
17125b89263SmrgThe C functions either provide direct access to the protocol and add no
17225b89263Smrgadditional semantics to those defined in section 5 or they correspond
17325b89263Smrgdirectly to the abstract descriptions of client operations in section 4.
17425b89263Smrg</para>
17525b89263Smrg
17625b89263Smrg<para>
17725b89263SmrgAll XTEST extension functions and procedures, and all manifest constants
17825b89263Smrgand macros, will start with the string "XTest".  All operations are
17925b89263Smrgclassified as server/client (Server) or client-only (Client).
18025b89263SmrgAll routines that have return type Status will return nonzero for
18125b89263Smrg"success" and zero for "failure."  Even if the XTEST extension is
18225b89263Smrgsupported, the server may withdraw such facilities arbitrarily; in which case
18325b89263Smrgthey will subsequently return zero.
18425b89263Smrg</para>
18525b89263Smrg
18625b89263Smrg<para>
18725b89263SmrgThe include file for this extension is
18825b89263Smrg&lt;<symbol role='Pn'>X11/extensions/XTest.h</symbol>&gt;.
18925b89263Smrg</para>
19025b89263Smrg
19106f32fbeSmrg<funcsynopsis id='XTestQueryExtension'>
19225b89263Smrg<funcprototype>
19325b89263Smrg<funcdef>Bool<function> XTestQueryExtension</function></funcdef>
19425b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
19525b89263Smrg<paramdef>int<parameter> *event_base</parameter></paramdef>
19625b89263Smrg<paramdef>int<parameter> *error_base</parameter></paramdef>
19725b89263Smrg<paramdef>int<parameter> *major_version</parameter></paramdef>
19825b89263Smrg<paramdef>int<parameter> *minor_version</parameter></paramdef>
19925b89263Smrg</funcprototype>
20025b89263Smrg</funcsynopsis>
20125b89263Smrg
20225b89263Smrg<para>
20306f32fbeSmrg<xref linkend='XTestQueryExtension' xrefstyle='select: title'/>
20425b89263Smrgreturns
20525b89263Smrg<function>True</function>
20625b89263Smrgif the specified display supports the XTEST extension, else
20725b89263Smrg<function>False</function>
20825b89263SmrgIf the extension is supported, *event_base would be set to the event number
20925b89263Smrgfor the first event for this extension and *error_base would be set to the
21025b89263Smrgerror number for the first error for this extension.  As no errors or
21125b89263Smrgevents are defined for this version of the extension, the values returned
21225b89263Smrghere are not defined (nor useful).  If the extension is supported,
21325b89263Smrg*major_version and *minor_version are set to the major and minor version
21425b89263Smrgnumbers of the extension supported by the display.  Otherwise, none of
21525b89263Smrgthe arguments are set.
21625b89263Smrg</para>
21725b89263Smrg
21806f32fbeSmrg<funcsynopsis id='XTestCompareCursorWithWindow'>
21925b89263Smrg<funcprototype>
22025b89263Smrg<funcdef>Bool<function> XTestCompareCursorWithWindow</function></funcdef>
22125b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
22225b89263Smrg<paramdef>Window<parameter> *window</parameter></paramdef>
22325b89263Smrg<paramdef>Cursor<parameter> cursor</parameter></paramdef>
22425b89263Smrg</funcprototype>
22525b89263Smrg</funcsynopsis>
22625b89263Smrg
22725b89263Smrg<para>If the extension is supported,
22806f32fbeSmrg<xref linkend='XTestCompareCursorWithWindow' xrefstyle='select: title'/>
22925b89263Smrgperforms a comparison of the cursor whose ID is specified by cursor (which
23025b89263Smrgmay be
23125b89263Smrg<function>None</function>
23225b89263Smrgwith the cursor of the window specified by window returning
23325b89263Smrg<function>True</function>
23425b89263Smrgif they are the same and
23525b89263Smrg<function>False</function>
23625b89263Smrgotherwise.  If the extension is not supported, then the request is ignored and
23725b89263Smrgzero is returned.
23825b89263Smrg</para>
23925b89263Smrg
24006f32fbeSmrg<funcsynopsis id='XTestCompareCurrentCursorWithWindow'>
24125b89263Smrg<funcprototype>
24225b89263Smrg<funcdef>Bool<function>XTestCompareCurrentCursorWithWindow</function></funcdef>
24325b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
24425b89263Smrg<paramdef>Window<parameter> window</parameter></paramdef>
24525b89263Smrg</funcprototype>
24625b89263Smrg</funcsynopsis>
24725b89263Smrg
24825b89263Smrg<para>If the extension is supported,
24906f32fbeSmrg<xref linkend='XTestCompareCurrentCursorWithWindow' xrefstyle='select: title'/>
25025b89263Smrgperforms a comparison of the current cursor with the cursor of the specified
25125b89263Smrgwindow returning
25225b89263Smrg<function>True</function>
25325b89263Smrgif they are the same and
25425b89263Smrg<function>False</function>
25525b89263Smrgotherwise.  If the extension is not supported, then the request is ignored and
25625b89263Smrgzero is returned.
25725b89263Smrg</para>
25825b89263Smrg
25906f32fbeSmrg<funcsynopsis id='XTestFakeKeyEvent'>
26025b89263Smrg<funcprototype>
26125b89263Smrg<funcdef><function>XTestFakeKeyEvent</function></funcdef>
26225b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
26325b89263Smrg<paramdef>unsigned int<parameter> keycode</parameter></paramdef>
26425b89263Smrg<paramdef>Bool<parameter> is_press</parameter></paramdef>
26525b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef>
26625b89263Smrg</funcprototype>
26725b89263Smrg</funcsynopsis>
26825b89263Smrg
26925b89263Smrg<para>If the extension is supported,
27006f32fbeSmrg<xref linkend='XTestFakeKeyEvent' xrefstyle='select: title'/>
27125b89263Smrgrequests the server to simulate either a
27225b89263Smrg<function>KeyPress</function>
27325b89263Smrg(if is_press is
27425b89263Smrg<function>True</function>
27525b89263Smrgor a
27625b89263Smrg<function>KeyRelease</function>
27725b89263Smrg(if is_press is
27825b89263Smrg<function>False</function>
27925b89263Smrgof the key with the specified keycode; otherwise, the request is ignored.
28025b89263Smrg</para>
28125b89263Smrg
28225b89263Smrg<para>
28325b89263SmrgIf the extension is supported, the simulated event will not be processed
28425b89263Smrguntil delay milliseconds after the request is received (if delay is
28525b89263Smrg<function>CurrentTime</function>
28625b89263Smrgthen this is interpreted as no delay at all).  No other requests from
28725b89263Smrgthis client will be processed until this delay, if any, has expired
28825b89263Smrgand subsequent processing of the simulated event has been completed.
28925b89263Smrg</para>
29025b89263Smrg
29106f32fbeSmrg<funcsynopsis id='XTestFakeButtonEvent'>
29225b89263Smrg<funcprototype>
29325b89263Smrg<funcdef><function>XTestFakeButtonEvent</function></funcdef>
29425b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
29525b89263Smrg<paramdef>unsigned int<parameter> button</parameter></paramdef>
29625b89263Smrg<paramdef>Bool<parameter> is_press</parameter></paramdef>
29725b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef>
29825b89263Smrg</funcprototype>
29925b89263Smrg</funcsynopsis>
30025b89263Smrg
30125b89263Smrg<para>If the extension is supported,
30206f32fbeSmrg<xref linkend='XTestFakeButtonEvent' xrefstyle='select: title'/>
30325b89263Smrgrequests the server to simulate either a
30425b89263Smrg<function>ButtonPress</function>
30525b89263Smrg(if is_press is
30625b89263Smrg<function>True</function>
30725b89263Smrgor a
30825b89263Smrg<function>ButtonRelease</function>
30925b89263Smrg(if is_press is
31025b89263Smrg<function>False</function>
31125b89263Smrgof the logical button numbered by the specified button; otherwise, the
31225b89263Smrgrequest is ignored.
31325b89263Smrg</para>
31425b89263Smrg
31525b89263Smrg<para>If the extension is supported,
31625b89263Smrgthe simulated event will not be processed until delay milliseconds
31725b89263Smrgafter the request is received (if delay is
31825b89263Smrg<function>CurrentTime</function>
31925b89263Smrgthen this is interpreted as no delay at all).  No other requests from
32025b89263Smrgthis client will be processed until this delay, if any, has expired
32125b89263Smrgand subsequent processing of the simulated event has been completed.
32225b89263Smrg</para>
32325b89263Smrg
32406f32fbeSmrg<funcsynopsis id='XTestFakeMotionEvent'>
32525b89263Smrg<funcprototype>
32625b89263Smrg<funcdef><function>XTestFakeMotionEvent</function></funcdef>
32725b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
32825b89263Smrg<paramdef>int<parameter> screen_number</parameter></paramdef>
32925b89263Smrg<paramdef>int<parameter> x</parameter></paramdef>
33025b89263Smrg<paramdef>int<parameter> y</parameter></paramdef>
33125b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef>
33225b89263Smrg</funcprototype>
33325b89263Smrg</funcsynopsis>
33425b89263Smrg
33525b89263Smrg<para>If the extension is supported,
33606f32fbeSmrg<xref linkend='XTestFakeMotionEvent' xrefstyle='select: title'/>
33725b89263Smrgrequests the server to simulate a movement of the pointer to the specified
33825b89263Smrgposition (x, y) on the root window of screen_number; otherwise, the request
33925b89263Smrgis ignored.  If screen_number is -1, the current screen (that the pointer
34025b89263Smrgis on) is used.
34125b89263Smrg</para>
34225b89263Smrg
34325b89263Smrg<para>
34425b89263SmrgIf the extension is supported, the simulated event will not be processed
34525b89263Smrguntil delay milliseconds after the request is received (if delay is
34625b89263Smrg<function>CurrentTime</function>
34725b89263Smrgthen this is interpreted as no delay at all).  No other requests from
34825b89263Smrgthis client will be processed until this delay, if any, has expired
34925b89263Smrgand subsequent processing of the simulated event has been completed.
35025b89263Smrg</para>
35125b89263Smrg
35206f32fbeSmrg<funcsynopsis id='XTestFakeRelativeMotionEvent'>
35325b89263Smrg<funcprototype>
35425b89263Smrg<funcdef><function>XTestFakeRelativeMotionEvent</function></funcdef>
35525b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
35625b89263Smrg<paramdef>int<parameter> screen_number</parameter></paramdef>
35725b89263Smrg<paramdef>int<parameter> x</parameter></paramdef>
35825b89263Smrg<paramdef>int<parameter> y</parameter></paramdef>
35925b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef>
36025b89263Smrg</funcprototype>
36125b89263Smrg</funcsynopsis>
36225b89263Smrg
36325b89263Smrg<para>
36425b89263SmrgIf the extension is supported,
36506f32fbeSmrg<xref linkend='XTestFakeRelativeMotionEvent' xrefstyle='select: title'/>
36625b89263Smrgrequests the server to simulate a movement of the pointer by the specified
36725b89263Smrgoffsets (x, y) relative to the current pointer position on screen_number;
36825b89263Smrgotherwise, the request is ignored.  If screen_number is -1, the
36925b89263Smrgcurrent screen (that the pointer is on) is used.
37025b89263Smrg</para>
37125b89263Smrg
37225b89263Smrg<para>
37325b89263SmrgIf the extension is supported, the simulated event will not be processed
37425b89263Smrguntil delay milliseconds after the request is received (if delay is
37525b89263Smrg<function>CurrentTime</function>
37625b89263Smrgthen this is interpreted as no delay at all).  No other requests from
37725b89263Smrgthis client will be processed until this delay, if any, has expired
37825b89263Smrgand subsequent processing of the simulated event has been completed.
37925b89263Smrg</para>
38025b89263Smrg
38106f32fbeSmrg<funcsynopsis id='XTestGrabControl'>
38225b89263Smrg<funcprototype>
38325b89263Smrg<funcdef><function>XTestGrabControl</function></funcdef>
38425b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
38525b89263Smrg<paramdef>Bool<parameter> impervious</parameter></paramdef>
38625b89263Smrg</funcprototype>
38725b89263Smrg</funcsynopsis>
38825b89263Smrg
38925b89263Smrg<para>If impervious is
39025b89263Smrg<function>True</function>
39125b89263Smrgthen the executing client becomes impervious to server grabs.  If impervious is
39225b89263Smrg<function>False</function>
39325b89263Smrgthen the executing client returns to the normal state of being susceptible
39425b89263Smrgto server grabs.
39525b89263Smrg</para>
39625b89263Smrg
39706f32fbeSmrg<funcsynopsis id='XTestSetGContextOfGC'>
39825b89263Smrg<funcprototype>
39925b89263Smrg<funcdef>Bool<function> XTestSetGContextOfGC</function></funcdef>
40025b89263Smrg<paramdef>GC<parameter> gc</parameter></paramdef>
40125b89263Smrg<paramdef>GContext<parameter> gid</parameter></paramdef>
40225b89263Smrg</funcprototype>
40325b89263Smrg</funcsynopsis>
40425b89263Smrg
40525b89263Smrg<para>
40606f32fbeSmrg<xref linkend='XTestSetGContextOfGC' xrefstyle='select: title'/>
40725b89263Smrgsets the GContext within the opaque datatype referenced by gc to
40825b89263Smrgbe that specified by gid.
40925b89263Smrg</para>
41025b89263Smrg
41106f32fbeSmrg<funcsynopsis id='XTestSetVisualIDOfVisual'>
41225b89263Smrg<funcprototype>
41325b89263Smrg<funcdef><function>XTestSetVisualIDOfVisual</function></funcdef>
41425b89263Smrg<paramdef>Visual<parameter> *visual</parameter></paramdef>
41525b89263Smrg<paramdef>VisualID<parameter> visualid</parameter></paramdef>
41625b89263Smrg</funcprototype>
41725b89263Smrg</funcsynopsis>
41825b89263Smrg
41925b89263Smrg<para>
42006f32fbeSmrg<xref linkend='XTestSetVisualIDOfVisual' xrefstyle='select: title'/>
42125b89263Smrgsets the VisualID within the opaque datatype referenced by visual to
42225b89263Smrgbe that specified by visualid.
42325b89263Smrg</para>
42425b89263Smrg
42506f32fbeSmrg<funcsynopsis id='XTestDiscard'>
42625b89263Smrg<funcprototype>
42725b89263Smrg<funcdef>Bool<function> XTestDiscard</function></funcdef>
42825b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef>
42925b89263Smrg</funcprototype>
43025b89263Smrg</funcsynopsis>
43125b89263Smrg
43225b89263Smrg<para>
43306f32fbeSmrg<xref linkend='XTestDiscard' xrefstyle='select: title'/>
43425b89263Smrgdiscards any requests within the output buffer for the specified display.
43525b89263SmrgIt returns
43625b89263Smrg<function>True</function>
43725b89263Smrgif any requests were discarded; otherwise, it returns
43825b89263Smrg<function>False</function>
43925b89263Smrg</para>
44025b89263Smrg</chapter>
44125b89263Smrg
44206f32fbeSmrg<chapter id='References'>
44325b89263Smrg<title>References</title>
44425b89263Smrg
44525b89263Smrg<para>
44625b89263SmrgAnnicchiarico, D., et al., <emphasis remap='I'>XTrap: The XTrap
44725b89263SmrgArchitecture</emphasis>.
44825b89263SmrgDigital Equipment Corporation, July 1991.
44925b89263Smrg</para>
45025b89263Smrg
45125b89263Smrg<para>
45225b89263SmrgDrake, K. J., <emphasis remap='I'>Some Proposals for a Minimum X11
45325b89263SmrgTesting Extension</emphasis>.
45425b89263SmrgUniSoft Ltd., June 1991.
45525b89263Smrg</para>
45625b89263Smrg
45725b89263Smrg</chapter>
45825b89263Smrg</book>
459