+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<xcb header="xproto">
+ <!-- Core event and error types -->
+
+ <event name="KeyPress" number="2">
+ <field type="KEYCODE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
+
+ <event name="ButtonPress" number="4">
+ <field type="BUTTON" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
+
+ <event name="MotionNotify" number="6">
+ <field type="BYTE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <event name="EnterNotify" number="7">
+ <field type="BYTE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BYTE" name="mode" />
+ <field type="BYTE" name="same_screen_focus" />
+ </event>
+
+ <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
+
+ <event name="FocusIn" number="9">
+ <field type="BYTE" name="detail" />
+ <field type="WINDOW" name="event" />
+ <field type="BYTE" name="mode" />
+ </event>
+
+ <eventcopy name="FocusOut" number="10" ref="FocusIn" />
+
+ <event name="KeymapNotify" number="11" no-sequence-number="true">
+ <list type="CARD8" name="keys"><value>31</value></list>
+ </event>
+
+ <event name="Expose" number="12">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="x" />
+ <field type="CARD16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="count" />
+ </event>
+
+ <event name="GraphicsExposure" number="13">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="x" />
+ <field type="CARD16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD16" name="count" />
+ <field type="CARD8" name="major_opcode" />
+ </event>
+
+ <event name="NoExposure" number="14">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </event>
+
+ <event name="VisibilityNotify" number="15">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <event name="CreateNotify" number="16">
+ <pad bytes="1" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="border_width" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="DestroyNotify" number="17">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ </event>
+
+ <event name="UnmapNotify" number="18">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="BOOL" name="from_configure" />
+ </event>
+
+ <event name="MapNotify" number="19">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="MapRequest" number="20">
+ <pad bytes="1" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ </event>
+
+ <event name="ReparentNotify" number="21">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="parent" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="ConfigureNotify" number="22">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="above_sibling" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="border_width" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="ConfigureRequest" number="23">
+ <field type="BYTE" name="stack_mode" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="sibling" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="border_width" />
+ <field type="CARD16" name="value_mask" />
+ </event>
+
+ <event name="GravityNotify" number="24">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </event>
+
+ <event name="ResizeRequest" number="25">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </event>
+
+ <event name="CirculateNotify" number="26">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <pad bytes="4" />
+ <field type="BYTE" name="place" />
+ </event>
+
+ <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
+
+ <event name="PropertyNotify" number="28">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="atom" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <event name="SelectionClear" number="29">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="owner" />
+ <field type="ATOM" name="selection" />
+ </event>
+
+ <event name="SelectionRequest" number="30">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="owner" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ </event>
+
+ <event name="SelectionNotify" number="31">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ </event>
+
+ <event name="ColormapNotify" number="32">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="COLORMAP" name="colormap" />
+ <field type="BOOL" name="new" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <union name="ClientMessageData">
+ <!-- The format member of the ClientMessage event determines which array
+ to use. -->
+ <list type="CARD8" name="data8" ><value>20</value></list> <!-- 8 -->
+ <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
+ <list type="CARD32" name="data32"><value>5</value></list> <!-- 32 -->
+ </union>
+
+ <event name="ClientMessage" number="33">
+ <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="type" />
+ <field type="ClientMessageData" name="data" />
+ </event>
+
+ <event name="MappingNotify" number="34">
+ <pad bytes="1" />
+ <field type="BYTE" name="request" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ </event>
+
+ <error name="Request" number="1">
+ <field type="CARD32" name="bad_value" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </error>
+
+ <error name="Value" number="2">
+ <field type="CARD32" name="bad_value" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </error>
+
+ <errorcopy name="Window" number="3" ref="Value" />
+ <errorcopy name="Pixmap" number="4" ref="Value" />
+ <errorcopy name="Atom" number="5" ref="Value" />
+ <errorcopy name="Cursor" number="6" ref="Value" />
+ <errorcopy name="Font" number="7" ref="Value" />
+ <errorcopy name="Match" number="8" ref="Request" />
+ <errorcopy name="Drawable" number="9" ref="Value" />
+ <errorcopy name="Access" number="10" ref="Request" />
+ <errorcopy name="Alloc" number="11" ref="Request" />
+ <errorcopy name="Colormap" number="12" ref="Value" />
+ <errorcopy name="GContext" number="13" ref="Value" />
+ <errorcopy name="IDChoice" number="14" ref="Value" />
+ <errorcopy name="Name" number="15" ref="Request" />
+ <errorcopy name="Length" number="16" ref="Request" />
+ <errorcopy name="Implementation" number="17" ref="Request" />
+
+ <!-- The requests, in major number order. -->
+ <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
+
+ <!-- FIXME: The ListFontsWithInfo request is not supported by XCB. -->
+
+ <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
+ <enum name="CW">
+ <item name="BackPixmap">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </item>
+ <item name="BackPixel">
+ <op op="<<"><value>1</value><value>1</value></op>
+ </item>
+ <item name="BorderPixmap">
+ <op op="<<"><value>1</value><value>2</value></op>
+ </item>
+ <item name="BorderPixel">
+ <op op="<<"><value>1</value><value>3</value></op>
+ </item>
+ <item name="BitGravity">
+ <op op="<<"><value>1</value><value>4</value></op>
+ </item>
+ <item name="WinGravity">
+ <op op="<<"><value>1</value><value>5</value></op>
+ </item>
+ <item name="BackingStore">
+ <op op="<<"><value>1</value><value>6</value></op>
+ </item>
+ <item name="BackingPlanes">
+ <op op="<<"><value>1</value><value>7</value></op>
+ </item>
+ <item name="BackingPixel">
+ <op op="<<"><value>1</value><value>8</value></op>
+ </item>
+ <item name="OverrideRedirect">
+ <op op="<<"><value>1</value><value>9</value></op>
+ </item>
+ <item name="SaveUnder">
+ <op op="<<"><value>1</value><value>10</value></op>
+ </item>
+ <item name="EventMask">
+ <op op="<<"><value>1</value><value>11</value></op>
+ </item>
+ <item name="DontPropagate">
+ <op op="<<"><value>1</value><value>12</value></op>
+ </item>
+ <item name="Colormap">
+ <op op="<<"><value>1</value><value>13</value></op>
+ </item>
+ <item name="Cursor">
+ <op op="<<"><value>1</value><value>14</value></op>
+ </item>
+ </enum>
+
+ <request name="CreateWindow" opcode="1">
+ <field type="CARD8" name="depth" />
+ <field type="WINDOW" name="wid" />
+ <field type="WINDOW" name="parent" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="border_width" />
+ <field type="CARD16" name="class" />
+ <field type="VISUALID" name="visual" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="ChangeWindowAttributes" opcode="2">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="GetWindowAttributes" opcode="3">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="CARD8" name="backing_store" />
+ <field type="VISUALID" name="visual" />
+ <field type="CARD16" name="class" />
+ <field type="CARD8" name="bit_gravity" />
+ <field type="CARD8" name="win_gravity" />
+ <field type="CARD32" name="backing_planes" />
+ <field type="CARD32" name="backing_pixel" />
+ <field type="BOOL" name="save_under" />
+ <field type="BOOL" name="map_is_installed" />
+ <field type="CARD8" name="map_state" />
+ <field type="BOOL" name="override_redirect" />
+ <field type="COLORMAP" name="colormap" />
+ <field type="CARD32" name="all_event_masks" />
+ <field type="CARD32" name="your_event_mask" />
+ <field type="CARD16" name="do_not_propagate_mask" />
+ </reply>
+ </request>
+
+ <request name="DestroyWindow" opcode="4">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="DestroySubwindows" opcode="5">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ChangeSaveSet" opcode="6">
+ <field type="BYTE" name="mode" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ReparentWindow" opcode="7">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="parent" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </request>
+
+ <request name="MapWindow" opcode="8">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="MapSubwindows" opcode="9">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="UnmapWindow" opcode="10">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="UnmapSubwindows" opcode="11">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ConfigureWindow" opcode="12">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <valueparam value-mask-type="CARD16"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="CirculateWindow" opcode="13">
+ <field type="CARD8" name="direction" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="GetGeometry" opcode="14">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <reply>
+ <field type="CARD8" name="depth" />
+ <field type="WINDOW" name="root" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="border_width" />
+ </reply>
+ </request>
+
+ <request name="QueryTree" opcode="15">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="parent" />
+ <field type="CARD16" name="children_len" />
+ <pad bytes="14" />
+ <list type="WINDOW" name="children">
+ <fieldref>children_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="InternAtom" opcode="16">
+ <field type="BOOL" name="only_if_exists" />
+ <field type="CARD16" name="name_len" />
+ <pad bytes="2" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="ATOM" name="atom" />
+ </reply>
+ </request>
+
+ <request name="GetAtomName" opcode="17">
+ <pad bytes="1" />
+ <field type="ATOM" name="atom" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="name_len" />
+ <pad bytes="22" />
+ <list type="CARD8" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeProperty" opcode="18">
+ <field type="CARD8" name="mode" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" />
+ <field type="CARD8" name="format" />
+ <pad bytes="3" />
+ <field type="CARD32" name="data_len" />
+ <list type="void" name="data">
+ <op op="/">
+ <op op="*">
+ <fieldref>data_len</fieldref>
+ <fieldref>format</fieldref>
+ </op>
+ <value>8</value>
+ </op>
+ </list>
+ </request>
+
+ <request name="DeleteProperty" opcode="19">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ </request>
+
+ <request name="GetProperty" opcode="20">
+ <field type="BOOL" name="delete" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" />
+ <field type="CARD32" name="long_offset" />
+ <field type="CARD32" name="long_length" />
+ <reply>
+ <field type="CARD8" name="format" />
+ <field type="ATOM" name="type" />
+ <field type="CARD32" name="bytes_after" />
+ <field type="CARD32" name="value_len" />
+ <pad bytes="12" />
+ <list type="void" name="value">
+ <fieldref>value_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListProperties" opcode="21">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="atoms_len" />
+ <pad bytes="22" />
+ <list type="ATOM" name="atoms">
+ <fieldref>atoms_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetSelectionOwner" opcode="22">
+ <pad bytes="1" />
+ <field type="WINDOW" name="owner" />
+ <field type="ATOM" name="selection" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GetSelectionOwner" opcode="23">
+ <pad bytes="1" />
+ <field type="ATOM" name="selection" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="owner" />
+ </reply>
+ </request>
+
+ <request name="ConvertSelection" opcode="24">
+ <pad bytes="1" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="SendEvent" opcode="25">
+ <field type="BOOL" name="propagate" />
+ <field type="WINDOW" name="destination" />
+ <field type="CARD32" name="event_mask" />
+ <list type="char" name="event"><value>32</value></list>
+ </request>
+
+ <request name="GrabPointer" opcode="26">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="event_mask" />
+ <field type="BYTE" name="pointer_mode" />
+ <field type="BYTE" name="keyboard_mode" />
+ <field type="WINDOW" name="confine_to" />
+ <field type="CURSOR" name="cursor" />
+ <field type="TIMESTAMP" name="time" />
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="UngrabPointer" opcode="27">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabButton" opcode="28">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="event_mask" />
+ <field type="CARD8" name="pointer_mode" />
+ <field type="CARD8" name="keyboard_mode" />
+ <field type="WINDOW" name="confine_to" />
+ <field type="CURSOR" name="cursor" />
+ <field type="CARD8" name="button" />
+ <pad bytes="1" />
+ <field type="CARD16" name="modifiers" />
+ </request>
+
+ <request name="UngrabButton" opcode="29">
+ <field type="CARD8" name="button" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ <pad bytes="2" />
+ </request>
+
+ <request name="ChangeActivePointerGrab" opcode="30">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="CARD16" name="event_mask" />
+ </request>
+
+ <request name="GrabKeyboard" opcode="31">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="BYTE" name="pointer_mode" />
+ <field type="BYTE" name="keyboard_mode" />
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="UngrabKeyboard" opcode="32">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabKey" opcode="33">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ <field type="KEYCODE" name="key" />
+ <field type="CARD8" name="pointer_mode" />
+ <field type="CARD8" name="keyboard_mode" />
+ </request>
+
+ <request name="UngrabKey" opcode="34">
+ <field type="CARD8" name="key" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ </request>
+
+ <request name="AllowEvents" opcode="35">
+ <field type="CARD8" name="mode" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabServer" opcode="36" />
+
+ <request name="UngrabServer" opcode="37" />
+
+ <request name="QueryPointer" opcode="38">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="BOOL" name="same_screen" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="win_x" />
+ <field type="INT16" name="win_y" />
+ <field type="CARD16" name="mask" />
+ </reply>
+ </request>
+
+ <struct name="TIMECOORD">
+ <field type="TIMESTAMP" name="time" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </struct>
+
+ <request name="GetMotionEvents" opcode="39">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="TIMESTAMP" name="start" />
+ <field type="TIMESTAMP" name="stop" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="events_len" />
+ <pad bytes="20" />
+ <list type="TIMECOORD" name="events">
+ <fieldref>events_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="TranslateCoordinates" opcode="40">
+ <pad bytes="1" />
+ <field type="WINDOW" name="src_window" />
+ <field type="WINDOW" name="dst_window" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <reply>
+ <field type="BOOL" name="same_screen" />
+ <field type="WINDOW" name="child" />
+ <field type="CARD16" name="dst_x" />
+ <field type="CARD16" name="dst_y" />
+ </reply>
+ </request>
+
+ <request name="WarpPointer" opcode="41">
+ <pad bytes="1" />
+ <field type="WINDOW" name="src_window" />
+ <field type="WINDOW" name="dst_window" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="CARD16" name="src_width" />
+ <field type="CARD16" name="src_height" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ </request>
+
+ <request name="SetInputFocus" opcode="42">
+ <field type="CARD8" name="revert_to" />
+ <field type="WINDOW" name="focus" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GetInputFocus" opcode="43">
+ <reply>
+ <field type="CARD8" name="revert_to" />
+ <field type="WINDOW" name="focus" />
+ </reply>
+ </request>
+
+ <request name="QueryKeymap" opcode="44">
+ <reply>
+ <pad bytes="1" />
+ <list type="CARD8" name="keys"><value>32</value></list>
+ </reply>
+ </request>
+
+ <request name="OpenFont" opcode="45">
+ <pad bytes="1" />
+ <field type="FONT" name="fid" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </request>
+
+ <request name="CloseFont" opcode="46">
+ <pad bytes="1" />
+ <field type="FONT" name="font" />
+ </request>
+
+ <struct name="FONTPROP">
+ <field type="ATOM" name="name" />
+ <field type="CARD32" name="value" />
+ </struct>
+
+ <struct name="CHARINFO">
+ <field type="INT16" name="left_side_bearing" />
+ <field type="INT16" name="right_side_bearing" />
+ <field type="INT16" name="character_width" />
+ <field type="INT16" name="ascent" />
+ <field type="INT16" name="descent" />
+ <field type="CARD16" name="attributes" />
+ </struct>
+
+ <request name="QueryFont" opcode="47">
+ <pad bytes="1" />
+ <field type="FONTABLE" name="font" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CHARINFO" name="min_bounds" />
+ <pad bytes="4" />
+ <field type="CHARINFO" name="max_bounds" />
+ <pad bytes="4" />
+ <field type="CARD16" name="min_char_or_byte2" />
+ <field type="CARD16" name="max_char_or_byte2" />
+ <field type="CARD16" name="default_char" />
+ <field type="CARD16" name="properties_len" />
+ <field type="BYTE" name="draw_direction" />
+ <field type="CARD8" name="min_byte1" />
+ <field type="CARD8" name="max_byte1" />
+ <field type="BOOL" name="all_chars_exist" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="CARD32" name="char_infos_len" />
+ <list type="FONTPROP" name="properties">
+ <fieldref>properties_len</fieldref>
+ </list>
+ <list type="CHARINFO" name="char_infos">
+ <fieldref>char_infos_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryTextExtents" opcode="48">
+ <exprfield type="BOOL" name="odd_length">
+ <op op="&"><fieldref>string_len</fieldref><value>1</value></op>
+ </exprfield>
+ <field type="FONTABLE" name="font" />
+ <list type="CHAR2B" name="string" />
+ <reply>
+ <field type="BYTE" name="draw_direction" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="INT16" name="overall_ascent" />
+ <field type="INT16" name="overall_descent" />
+ <field type="INT32" name="overall_width" />
+ <field type="INT32" name="overall_left" />
+ <field type="INT32" name="overall_right" />
+ </reply>
+ </request>
+
+ <struct name="STR">
+ <field type="CARD8" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </struct>
+
+ <request name="ListFonts" opcode="49">
+ <pad bytes="1" />
+ <field type="CARD16" name="max_names" />
+ <field type="CARD16" name="pattern_len" />
+ <list type="char" name="pattern">
+ <fieldref>pattern_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="names_len" />
+ <pad bytes="22" />
+ <list type="STR" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListFontsWithInfo" opcode="50">
+ <pad bytes="1" />
+ <field type="CARD16" name="max_names" />
+ <field type="CARD16" name="pattern_len" />
+ <list type="char" name="pattern">
+ <fieldref>pattern_len</fieldref>
+ </list>
+ <reply>
+ <field type="CARD8" name="name_len" />
+ <field type="CHARINFO" name="min_bounds" />
+ <pad bytes="4" />
+ <field type="CHARINFO" name="max_bounds" />
+ <pad bytes="4" />
+ <field type="CARD16" name="min_char_or_byte2" />
+ <field type="CARD16" name="max_char_or_byte2" />
+ <field type="CARD16" name="default_char" />
+ <field type="CARD16" name="properties_len" />
+ <field type="BYTE" name="draw_direction" />
+ <field type="CARD8" name="min_byte1" />
+ <field type="CARD8" name="max_byte1" />
+ <field type="BOOL" name="all_chars_exist" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="CARD32" name="replies_hint" />
+ <list type="FONTPROP" name="properties">
+ <fieldref>properties_len</fieldref>
+ </list>
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetFontPath" opcode="51">
+ <pad bytes="1" />
+ <field type="CARD16" name="font_qty" />
+ <list type="char" name="path" />
+ </request>
+
+ <request name="GetFontPath" opcode="52">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="path_len" />
+ <pad bytes="22" />
+ <list type="STR" name="path">
+ <fieldref>path_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="CreatePixmap" opcode="53">
+ <field type="CARD8" name="depth" />
+ <field type="PIXMAP" name="pid" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="FreePixmap" opcode="54">
+ <pad bytes="1" />
+ <field type="PIXMAP" name="pixmap" />
+ </request>
+
+ <request name="CreateGC" opcode="55">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="cid" />
+ <field type="DRAWABLE" name="drawable" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="ChangeGC" opcode="56">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="CopyGC" opcode="57">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="src_gc" />
+ <field type="GCONTEXT" name="dst_gc" />
+ <field type="CARD32" name="value_mask" />
+ </request>
+
+ <request name="SetDashes" opcode="58">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD16" name="dash_offset" />
+ <field type="CARD16" name="dashes_len" />
+ <list type="CARD8" name="dashes">
+ <fieldref>dashes_len</fieldref>
+ </list>
+ </request>
+
+ <request name="SetClipRectangles" opcode="59">
+ <field type="BYTE" name="ordering" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="clip_x_origin" />
+ <field type="INT16" name="clip_y_origin" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="FreeGC" opcode="60">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ </request>
+
+ <request name="ClearArea" opcode="61">
+ <field type="BOOL" name="exposures" />
+ <field type="WINDOW" name="window" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="CopyArea" opcode="62">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="src_drawable" />
+ <field type="DRAWABLE" name="dst_drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="CopyPlane" opcode="63">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="src_drawable" />
+ <field type="DRAWABLE" name="dst_drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="bit_plane" />
+ </request>
+
+ <request name="PolyPoint" opcode="64" combine-adjacent="true">
+ <field type="BYTE" name="coordinate_mode" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <request name="PolyLine" opcode="65" combine-adjacent="true">
+ <field type="BYTE" name="coordinate_mode" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <struct name="SEGMENT">
+ <field type="INT16" name="x1" />
+ <field type="INT16" name="y1" />
+ <field type="INT16" name="x2" />
+ <field type="INT16" name="y2" />
+ </struct>
+
+ <request name="PolySegment" opcode="66" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="SEGMENT" name="segments" />
+ </request>
+
+ <request name="PolyRectangle" opcode="67" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <!--
+ The semantics of PolyArc change after the first arc: the GC's
+ join style may be applied to successive arcs under some circumstances.
+ So using combine-adjacent here is bad.
+ -->
+ <request name="PolyArc" opcode="68">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="ARC" name="arcs" />
+ </request>
+
+ <request name="FillPoly" opcode="69">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD8" name="shape" />
+ <field type="CARD8" name="coordinate_mode" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="PolyFillArc" opcode="71" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="ARC" name="arcs" />
+ </request>
+
+ <request name="PutImage" opcode="72">
+ <field type="CARD8" name="format" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD8" name="left_pad" />
+ <field type="CARD8" name="depth" />
+ <list type="BYTE" name="data" />
+ </request>
+
+ <!-- FIXME: data array in reply will include padding, but ought not to. -->
+ <request name="GetImage" opcode="73">
+ <field type="CARD8" name="format" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="plane_mask" />
+ <reply>
+ <field type="CARD8" name="depth" />
+ <field type="VISUALID" name="visual" />
+ <pad bytes="20" />
+ <list type="BYTE" name="data">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PolyText8" opcode="74">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="BYTE" name="items" />
+ </request>
+
+ <request name="PolyText16" opcode="75">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="BYTE" name="items" />
+ </request>
+
+ <request name="ImageText8" opcode="76">
+ <field type="BYTE" name="string_len" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="char" name="string">
+ <fieldref>string_len</fieldref>
+ </list>
+ </request>
+
+ <request name="ImageText16" opcode="77">
+ <field type="BYTE" name="string_len" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="CHAR2B" name="string">
+ <fieldref>string_len</fieldref>
+ </list>
+ </request>
+
+ <request name="CreateColormap" opcode="78">
+ <field type="BYTE" name="alloc" />
+ <field type="COLORMAP" name="mid" />
+ <field type="WINDOW" name="window" />
+ <field type="VISUALID" name="visual" />
+ </request>
+
+ <request name="FreeColormap" opcode="79">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="CopyColormapAndFree" opcode="80">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="mid" />
+ <field type="COLORMAP" name="src_cmap" />
+ </request>
+
+ <request name="InstallColormap" opcode="81">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="UninstallColormap" opcode="82">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="ListInstalledColormaps" opcode="83">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="cmaps_len" />
+ <pad bytes="22" />
+ <list type="COLORMAP" name="cmaps">
+ <fieldref>cmaps_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="AllocColor" opcode="84">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <pad bytes="2" />
+ <field type="CARD32" name="pixel" />
+ </reply>
+ </request>
+
+ <request name="AllocNamedColor" opcode="85">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="exact_red" />
+ <field type="CARD16" name="exact_green" />
+ <field type="CARD16" name="exact_blue" />
+ <field type="CARD16" name="visual_red" />
+ <field type="CARD16" name="visual_green" />
+ <field type="CARD16" name="visual_blue" />
+ </reply>
+ </request>
+
+ <request name="AllocColorCells" opcode="86">
+ <field type="BOOL" name="contiguous" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="colors" />
+ <field type="CARD16" name="planes" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="pixels_len" />
+ <field type="CARD16" name="masks_len" />
+ <pad bytes="20" />
+ <list type="CARD32" name="pixels">
+ <fieldref>pixels_len</fieldref>
+ </list>
+ <list type="CARD32" name="masks">
+ <fieldref>masks_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="AllocColorPlanes" opcode="87">
+ <field type="BOOL" name="contiguous" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="colors" />
+ <field type="CARD16" name="reds" />
+ <field type="CARD16" name="greens" />
+ <field type="CARD16" name="blues" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="pixels_len" />
+ <pad bytes="2" />
+ <field type="CARD32" name="red_mask" />
+ <field type="CARD32" name="green_mask" />
+ <field type="CARD32" name="blue_mask" />
+ <pad bytes="8" />
+ <list type="CARD32" name="pixels">
+ <fieldref>pixels_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="FreeColors" opcode="88">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD32" name="plane_mask" />
+ <list type="CARD32" name="pixels" />
+ </request>
+
+ <struct name="COLORITEM">
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <field type="BYTE" name="flags" />
+ <pad bytes="1" />
+ </struct>
+
+ <request name="StoreColors" opcode="89" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <list type="COLORITEM" name="items" />
+ </request>
+
+ <request name="StoreNamedColor" opcode="90">
+ <field type="CARD8" name="flags" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </request>
+
+ <struct name="RGB">
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <pad bytes="2" />
+ </struct>
+
+ <request name="QueryColors" opcode="91">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <list type="CARD32" name="pixels" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="colors_len" />
+ <pad bytes="22" />
+ <list type="RGB" name="colors">
+ <fieldref>colors_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="LookupColor" opcode="92">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="exact_red" />
+ <field type="CARD16" name="exact_green" />
+ <field type="CARD16" name="exact_blue" />
+ <field type="CARD16" name="visual_red" />
+ <field type="CARD16" name="visual_green" />
+ <field type="CARD16" name="visual_blue" />
+ </reply>
+ </request>
+
+ <request name="CreateCursor" opcode="93">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cid" />
+ <field type="PIXMAP" name="source" />
+ <field type="PIXMAP" name="mask" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ <field type="CARD16" name="x" />
+ <field type="CARD16" name="y" />
+ </request>
+
+ <request name="CreateGlyphCursor" opcode="94">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cid" />
+ <field type="FONT" name="source_font" />
+ <field type="FONT" name="mask_font" />
+ <field type="CARD16" name="source_char" />
+ <field type="CARD16" name="mask_char" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ </request>
+
+ <request name="FreeCursor" opcode="95">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ </request>
+
+ <request name="RecolorCursor" opcode="96">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ </request>
+
+ <request name="QueryBestSize" opcode="97">
+ <field type="CARD8" name="class" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </reply>
+ </request>
+
+ <request name="QueryExtension" opcode="98">
+ <pad bytes="1" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="BOOL" name="present" />
+ <field type="CARD8" name="major_opcode" />
+ <field type="CARD8" name="first_event" />
+ <field type="CARD8" name="first_error" />
+ </reply>
+ </request>
+
+ <request name="ListExtensions" opcode="99">
+ <reply>
+ <field type="CARD8" name="names_len" />
+ <pad bytes="24" />
+ <list type="STR" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeKeyboardMapping" opcode="100">
+ <field type="CARD8" name="keycode_count" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="keysyms_per_keycode" />
+ <list type="KEYSYM" name="keysyms">
+ <op op="*">
+ <fieldref>keycode_count</fieldref>
+ <fieldref>keysyms_per_keycode</fieldref>
+ </op>
+ </list>
+ </request>
+
+ <request name="GetKeyboardMapping" opcode="101">
+ <pad bytes="1" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ <reply>
+ <field type="BYTE" name="keysyms_per_keycode" />
+ <pad bytes="24" />
+ <list type="KEYSYM" name="keysyms">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeKeyboardControl" opcode="102">
+ <pad bytes="1" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="GetKeyboardControl" opcode="103">
+ <reply>
+ <field type="BYTE" name="global_auto_repeat" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD8" name="key_click_percent" />
+ <field type="CARD8" name="bell_percent" />
+ <field type="CARD16" name="bell_pitch" />
+ <field type="CARD16" name="bell_duration" />
+ <pad bytes="2" />
+ <list type="CARD8" name="auto_repeats"><value>32</value></list>
+ </reply>
+ </request>
+
+ <request name="Bell" opcode="104">
+ <field type="INT8" name="percent" />
+ </request>
+
+ <request name="ChangePointerControl" opcode="105">
+ <pad bytes="1" />
+ <field type="INT16" name="acceleration_numerator" />
+ <field type="INT16" name="acceleration_denominator" />
+ <field type="INT16" name="threshold" />
+ <field type="BOOL" name="do_acceleration" />
+ <field type="BOOL" name="do_threshold" />
+ </request>
+
+ <request name="GetPointerControl" opcode="106">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="acceleration_numerator" />
+ <field type="CARD16" name="acceleration_denominator" />
+ <field type="CARD16" name="threshold" />
+ </reply>
+ </request>
+
+ <request name="SetScreenSaver" opcode="107">
+ <pad bytes="1" />
+ <field type="INT16" name="timeout" />
+ <field type="INT16" name="interval" />
+ <field type="CARD8" name="prefer_blanking" />
+ <field type="CARD8" name="allow_exposures" />
+ </request>
+
+ <request name="GetScreenSaver" opcode="108">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="timeout" />
+ <field type="CARD16" name="interval" />
+ <field type="BYTE" name="prefer_blanking" />
+ <field type="BYTE" name="allow_exposures" />
+ </reply>
+ </request>
+
+ <request name="ChangeHosts" opcode="109">
+ <field type="CARD8" name="mode" />
+ <field type="CARD8" name="family" />
+ <pad bytes="1" />
+ <field type="CARD16" name="address_len" />
+ <list type="char" name="address">
+ <fieldref>address_len</fieldref>
+ </list>
+ </request>
+
+ <struct name="HOST">
+ <field type="CARD8" name="family" />
+ <pad bytes="1" />
+ <field type="CARD16" name="address_len" />
+ <list type="BYTE" name="address">
+ <fieldref>address_len</fieldref>
+ </list>
+ </struct>
+
+ <request name="ListHosts" opcode="110">
+ <reply>
+ <field type="BYTE" name="mode" />
+ <field type="CARD16" name="hosts_len" />
+ <pad bytes="22" />
+ <list type="HOST" name="hosts">
+ <fieldref>hosts_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetAccessControl" opcode="111">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="SetCloseDownMode" opcode="112">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="KillClient" opcode="113">
+ <pad bytes="1" />
+ <field type="CARD32" name="resource" />
+ </request>
+
+ <request name="RotateProperties" opcode="114">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="atoms_len" />
+ <field type="INT16" name="delta" />
+ <list type="ATOM" name="atoms">
+ <fieldref>atoms_len</fieldref>
+ </list>
+ </request>
+
+ <request name="ForceScreenSaver" opcode="115">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="SetPointerMapping" opcode="116">
+ <field type="CARD8" name="map_len" />
+ <list type="CARD8" name="map">
+ <fieldref>map_len</fieldref>
+ </list>
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="GetPointerMapping" opcode="117">
+ <reply>
+ <field type="CARD8" name="map_len" />
+ <pad bytes="24" />
+ <list type="CARD8" name="map">
+ <fieldref>map_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetModifierMapping" opcode="118">
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <list type="KEYCODE" name="keycodes">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="GetModifierMapping" opcode="119">
+ <reply>
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <pad bytes="24" />
+ <list type="KEYCODE" name="keycodes">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <!--
+ FIXME: NoOperation should allow specifying payload length
+ but geez, malloc()ing a 262140 byte buffer just so I have something
+ to hand to write(2) seems silly...!
+ -->
+ <request name="NoOperation" opcode="127" />
+
+</xcb>