aboutsummaryrefslogtreecommitdiff
path: root/libxcb/xcb-proto
diff options
context:
space:
mode:
Diffstat (limited to 'libxcb/xcb-proto')
-rw-r--r--libxcb/xcb-proto/HACKING20
-rw-r--r--libxcb/xcb-proto/src/.gitattributes1
-rw-r--r--libxcb/xcb-proto/src/xinput.xml34
-rw-r--r--libxcb/xcb-proto/src/xkb.xml24
-rw-r--r--libxcb/xcb-proto/src/xv.xml8
-rw-r--r--libxcb/xcb-proto/xcbgen/xtypes.py2
6 files changed, 79 insertions, 10 deletions
diff --git a/libxcb/xcb-proto/HACKING b/libxcb/xcb-proto/HACKING
new file mode 100644
index 000000000..e954a766a
--- /dev/null
+++ b/libxcb/xcb-proto/HACKING
@@ -0,0 +1,20 @@
+Make patches more descriptive
+=============================
+
+By default hunk headers of a patch will look like this:
+
+ @@ -1227,6 +1227,8 @@ authorization from the authors.
+
+Which is not very usefull as it doesn't give a hint where the change
+happened (except for the line number). To make those hunk headers more
+descriptive, i.e.:
+
+ @@ -1227,6 +1227,8 @@ <struct name="HierarchyChange">
+
+Add these 2 lines to your .git/config file:
+
+ [diff "xcb"]
+ xfuncname = "(<\\b(xcb|enum|event|request|struct|union)\\b.*>)"
+
+For more background on this magic have a look at src/.gitattributes and
+the man page gitattributes(5) chapter "Defining a custom hunk-header".
diff --git a/libxcb/xcb-proto/src/.gitattributes b/libxcb/xcb-proto/src/.gitattributes
new file mode 100644
index 000000000..8d345b069
--- /dev/null
+++ b/libxcb/xcb-proto/src/.gitattributes
@@ -0,0 +1 @@
+*.xml diff=xcb
diff --git a/libxcb/xcb-proto/src/xinput.xml b/libxcb/xcb-proto/src/xinput.xml
index e62b7cb74..dd3f18438 100644
--- a/libxcb/xcb-proto/src/xinput.xml
+++ b/libxcb/xcb-proto/src/xinput.xml
@@ -1257,10 +1257,42 @@ authorization from the authors.
<!-- XISelectEvents -->
+ <enum name="XIEventMask">
+ <item name="DeviceChanged"> <bit>1</bit> </item>
+ <item name="KeyPress"> <bit>2</bit> </item>
+ <item name="KeyRelease"> <bit>3</bit> </item>
+ <item name="ButtonPress"> <bit>4</bit> </item>
+ <item name="ButtonRelease"> <bit>5</bit> </item>
+ <item name="Motion"> <bit>6</bit> </item>
+ <item name="Enter"> <bit>7</bit> </item>
+ <item name="Leave"> <bit>8</bit> </item>
+ <item name="FocusIn"> <bit>9</bit> </item>
+ <item name="FocusOut"> <bit>10</bit> </item>
+ <item name="Hierarchy"> <bit>11</bit> </item>
+ <item name="Property"> <bit>12</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.1) ⋅⋅⋅ -->
+ <item name="RawKeyPress"> <bit>13</bit> </item>
+ <item name="RawKeyRelease"> <bit>14</bit> </item>
+ <item name="RawButtonPress"> <bit>15</bit> </item>
+ <item name="RawButtonRelease"> <bit>16</bit> </item>
+ <item name="RawMotion"> <bit>17</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.2) ⋅⋅⋅ -->
+ <item name="TouchBegin"> <bit>18</bit> </item>
+ <item name="TouchUpdate"> <bit>19</bit> </item>
+ <item name="TouchEnd"> <bit>20</bit> </item>
+ <item name="TouchOwnership"> <bit>21</bit> </item>
+ <item name="RawTouchBegin"> <bit>22</bit> </item>
+ <item name="RawTouchUpdate"> <bit>23</bit> </item>
+ <item name="RawTouchEnd"> <bit>24</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.3) ⋅⋅⋅ -->
+ <item name="BarrierHit"> <bit>25</bit> </item>
+ <item name="BarrierLeave"> <bit>26</bit> </item>
+ </enum>
+
<struct name="EventMask">
<field type="DeviceId" name="deviceid" altenum="Device" />
<field type="CARD16" name="mask_len" />
- <list type="CARD32" name="mask"> <!-- set of EventMaskBit -->
+ <list type="CARD32" name="mask" mask="XIEventMask">
<fieldref>mask_len</fieldref>
</list>
</struct>
diff --git a/libxcb/xcb-proto/src/xkb.xml b/libxcb/xcb-proto/src/xkb.xml
index 2ea659c29..1df0771e1 100644
--- a/libxcb/xcb-proto/src/xkb.xml
+++ b/libxcb/xcb-proto/src/xkb.xml
@@ -547,6 +547,7 @@ authorization from the authors.
<typedef oldname="char" newname="STRING8" />
+ <!-- XXX: Property is broken
<struct name="Property">
<field name="nameLength" type="CARD16" />
<list name="name" type="STRING8">
@@ -557,6 +558,15 @@ authorization from the authors.
<fieldref>valueLength</fieldref>
</list>
</struct>
+ -->
+ <!-- XXX: This would be the correct Property structure as per spec.,
+ but it's broken atm. too. Add it anyway here, so we don't
+ loose that information.
+ <struct name="Property">
+ <field name="name" type="CountedString16" />
+ <field name="value" type="CountedString16" />
+ </struct>
+ -->
<struct name="Outline">
<field name="nPoints" type="CARD8" />
@@ -633,6 +643,7 @@ authorization from the authors.
<item name="Logo"> <value>5</value> </item>
</enum>
+ <!-- XXX: doodads are broken
<struct name="CommonDoodad">
<field name="name" type="ATOM" />
<field name="type" type="CARD8" enum="DoodadType" />
@@ -726,6 +737,7 @@ authorization from the authors.
<fieldref>nOverlays</fieldref>
</list>
</struct>
+ -->
<struct name="Listing">
<field name="flags" type="CARD16" />
@@ -1869,6 +1881,7 @@ authorization from the authors.
</switch>
</request>
+ <!-- XXX: Property and doodads are broken, which renders GetGeometry useless
<request name="GetGeometry" opcode="19">
<field name="deviceSpec" type="DeviceSpec" />
<pad bytes="2" />
@@ -1909,7 +1922,9 @@ authorization from the authors.
</list>
</reply>
</request>
+ -->
+ <!-- XXX: Property and doodads are broken, which renders SetGeometry useless
<request name="SetGeometry" opcode="20">
<field name="deviceSpec" type="DeviceSpec" />
<field name="nShapes" type="CARD8" />
@@ -1944,6 +1959,7 @@ authorization from the authors.
<fieldref>nKeyAliases</fieldref>
</list>
</request>
+ -->
<request name="PerClientFlags" opcode="21">
<field name="deviceSpec" type="DeviceSpec" />
@@ -1966,6 +1982,7 @@ authorization from the authors.
<request name="ListComponents" opcode="22">
<field name="deviceSpec" type="DeviceSpec" />
<field name="maxNames" type="CARD16" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
@@ -1990,6 +2007,7 @@ authorization from the authors.
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="nKeymaps" type="CARD16" />
@@ -2027,6 +2045,7 @@ authorization from the authors.
<field name="want" type="CARD16" mask="GBNDetail" />
<field name="load" type="BOOL" />
<pad bytes="1" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
@@ -2051,6 +2070,7 @@ authorization from the authors.
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="minKeyCode" type="KEYCODE" />
@@ -2324,6 +2344,7 @@ authorization from the authors.
<field name="baseColorNdx" type="CARD8" />
<field name="labelColorNdx" type="CARD8" />
<field name="labelFont" type="CountedString16" />
+ <!-- XXX: Property is broken
<list name="properties" type="Property">
<fieldref>nProperties</fieldref>
</list>
@@ -2333,6 +2354,8 @@ authorization from the authors.
<list name="shapes" type="Shape">
<fieldref>nShapes</fieldref>
</list>
+ -->
+ <!-- XXX: doodads are broken
<list name="sections" type="Section">
<fieldref>nSections</fieldref>
</list>
@@ -2342,6 +2365,7 @@ authorization from the authors.
<list name="keyAliases" type="KeyAlias">
<fieldref>nKeyAliases</fieldref>
</list>
+ -->
</bitcase>
</switch>
</reply>
diff --git a/libxcb/xcb-proto/src/xv.xml b/libxcb/xcb-proto/src/xv.xml
index a05767c53..0b55d3633 100644
--- a/libxcb/xcb-proto/src/xv.xml
+++ b/libxcb/xcb-proto/src/xv.xml
@@ -112,10 +112,6 @@ authorization from the authors.
<field type="CARD16" name="name_size" />
<field type="CARD16" name="width" />
<field type="CARD16" name="height" />
- <!--
- Some versions of Xvproto.h incorrectly have
- this padding after "rate".
- -->
<pad bytes="2" />
<field type="Rational" name="rate" />
<list type="char" name="name">
@@ -234,10 +230,6 @@ authorization from the authors.
<reply>
<pad bytes="1" />
<field type="CARD16" name="num_encodings" />
- <!--
- In Xvproto.h this padding is 24 bytes
- in actuality it is 22 bytes
- -->
<pad bytes="22" />
<list type="EncodingInfo" name="info">
<fieldref>num_encodings</fieldref>
diff --git a/libxcb/xcb-proto/xcbgen/xtypes.py b/libxcb/xcb-proto/xcbgen/xtypes.py
index 951731afc..5f45723ce 100644
--- a/libxcb/xcb-proto/xcbgen/xtypes.py
+++ b/libxcb/xcb-proto/xcbgen/xtypes.py
@@ -76,7 +76,7 @@ class Type(object):
complex_type.fields.append(new_field)
def make_fd_of(self, module, complex_type, fd_name):
- '''
+ '''
Method for making a fd member of a structure.
'''
new_fd = Field(self, module.get_type_name('INT32'), fd_name, True, False, False, None, True)