[Xcb] [PATCH 2/1] XKB: Rewrite AXOption

Peter Harris pharris at opentext.com
Tue Sep 24 06:59:30 PDT 2013


AXOption can be an <enum> instead of a <union>, which is a much simpler
construct.

Signed-off-by: Peter Harris <pharris at opentext.com>
---

AXOption was only ever a <union> in the first place due to a typo in an
<enum>.

I'd really like to see this patch go in, because <union> is a terrible
construct. That said, I am aware that this change will break anybody
using this particular piece of (unofficial) API. Comments welcome.

 src/xkb.xml |   26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/src/xkb.xml b/src/xkb.xml
index 9d3a540..25c9e79 100644
--- a/src/xkb.xml
+++ b/src/xkb.xml
@@ -130,29 +130,21 @@ authorization from the authors.
 		<item name="ControlsEnabled"> <bit>31</bit> </item>
 	</enum>
 
-	<enum name="AXFBOpt">
+	<enum name="AXOption">
 		<item name="SKPressFB">     <bit>0</bit> </item>
 		<item name="SKAcceptFB">    <bit>1</bit> </item>
 		<item name="FeatureFB">     <bit>2</bit> </item>
 		<item name="SlowWarnFB">    <bit>3</bit> </item>
 		<item name="IndicatorFB">   <bit>4</bit> </item>
 		<item name="StickyKeysFB">  <bit>5</bit> </item>
+		<item name="TwoKeys">       <bit>6</bit> </item>
+		<item name="LatchToLock">   <bit>7</bit> </item>
 		<item name="SKReleaseFB">   <bit>8</bit> </item>
 		<item name="SKRejectFB">    <bit>9</bit> </item>
 		<item name="BKRejectFB">    <bit>10</bit> </item>
 		<item name="DumbBell">      <bit>11</bit> </item>
 	</enum>
 
-	<enum name="AXSKOpt">
-		<item name="TwoKeys">     <bit>6</bit> </item>
-		<item name="LatchToLock"> <bit>7</bit> </item>
-	</enum>
-
-	<union name="AXOption">
-		<field name="fbopt" type="CARD16" enum="AXFBOpt" />
-		<field name="skopt" type="CARD16" enum="AXSKOpt" />
-	</union>
-
 	<typedef oldname="CARD16" newname="DeviceSpec" />
 
 	<enum name="LedClassResult">
@@ -1227,10 +1219,10 @@ authorization from the authors.
 			<field name="mouseKeysTimeToMax" type="CARD16" />
 			<field name="mouseKeysMaxSpeed" type="CARD16" />
 			<field name="mouseKeysCurve" type="INT16" />
-			<field name="accessXOption" type="AXOption" />
+			<field name="accessXOption" type="CARD16" mask="AXOption" />
 			<field name="accessXTimeout" type="CARD16" />
-			<field name="accessXTimeoutOptionsMask" type="AXOption" />
-			<field name="accessXTimeoutOptionsValues" type="AXOption" />
+			<field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" />
+			<field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" />
 			<pad bytes="2" />
 			<field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" />
 			<field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" />
@@ -1253,7 +1245,7 @@ authorization from the authors.
 		<field name="ignoreLockVirtualMods" type="CARD16" mask="VMod" />
 		<field name="mouseKeysDfltBtn" type="CARD8" />
 		<field name="groupsWrap" type="CARD8" />
-		<field name="accessXOptions" type="AXOption" />
+		<field name="accessXOptions" type="CARD16" mask="AXOption" />
 		<pad bytes="2" />
 		<field name="affectEnabledControls" type="CARD32" mask="BoolCtrl" />
 		<field name="enabledControls" type="CARD32" mask="BoolCtrl" />
@@ -1270,8 +1262,8 @@ authorization from the authors.
 		<field name="accessXTimeout" type="CARD16" />
 		<field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" />
 		<field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" />
-		<field name="accessXTimeoutOptionsMask" type="AXOption" />
-		<field name="accessXTimeoutOptionsValues" type="AXOption" />
+		<field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" />
+		<field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" />
 		<list name="perKeyRepeat" type="CARD8">
 			<value>32</value>
 		</list>
-- 
1.7.10.4



More information about the Xcb mailing list