Magellan Linux

Diff of /trunk/xorg-server/patches/xorg-server-1.17.1-dix-add-unaccelerated-valuators-to-the-valuatormask.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2575 by niro, Mon Jun 15 12:22:48 2015 UTC revision 2576 by niro, Mon Jun 15 13:02:17 2015 UTC
# Line 1  Line 1 
1  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  From e1a7f4bb5333b0271d29f785eb55f1c3273e626a Mon Sep 17 00:00:00 2001
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  From: Peter Hutterer <peter.hutterer@who-t.net>
 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>  
 <head>  
 <title>svntogit/packages.git - Git clone of the 'packages' repository  
 </title>  
 <meta name='generator' content='cgit v0.10.2'/>  
 <meta name='robots' content='index, nofollow'/>  
 <link rel='stylesheet' type='text/css' href='/cgit.css'/>  
 <link rel='shortcut icon' href='/favicon.ico'/>  
 <link rel='alternate' title='Atom feed' href='https://projects.archlinux.org/svntogit/packages.git/atom/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server' type='application/atom+xml'/>  
 <link rel='vcs-git' href='git://projects.archlinux.org/svntogit/packages.git' title='svntogit/packages.git Git repository'/>  
 <link rel='vcs-git' href='http://projects.archlinux.org/git/svntogit/packages.git' title='svntogit/packages.git Git repository'/>  
 <link rel='vcs-git' href='https://projects.archlinux.org/git/svntogit/packages.git' title='svntogit/packages.git Git repository'/>  
 <link rel='vcs-git' href='ssh://gerolde.archlinux.org/srv/projects/git/svntogit/packages.git' title='svntogit/packages.git Git repository'/>  
 </head>  
 <body>  
  <div id="archnavbar"><!-- Arch Linux global navigation bar -->  
  <div id="archnavbarlogo">  
  <p><a href="http://www.archlinux.org/" title="Arch news, packages, projects and more"></a></p>  
  </div>  
  <div id="archnavbarmenu">  
  <ul id="archnavbarlist">  
  <li id="anb-home"><a href="http://www.archlinux.org/" title="Arch news, packages, projects and more">Home</a></li>  
  <li id="anb-packages"><a href="http://www.archlinux.org/packages/" title="Arch Package Database">Packages</a></li>  
  <li id="anb-forums"><a href="https://bbs.archlinux.org/" title="Community forums">Forums</a></li>  
  <li id="anb-wiki"><a href="https://wiki.archlinux.org/" title="Community documentation">Wiki</a></li>  
  <li id="anb-bugs"><a href="https://bugs.archlinux.org/" title="Report and follow bugs">Bugs</a></li>  
  <li id="anb-aur"><a href="https://aur.archlinux.org/" title="Arch Linux User Repository">AUR</a></li>  
  <li id="anb-download"><a href="http://www.archlinux.org/download/" title="Get Arch Linux">Download</a></li>  
  </ul>  
  </div>  
  </div><!-- #archnavbar -->  
 <div id='cgit'><table id='header'>  
 <tr>  
 <td class='main'><a href='/'>index</a> : <a title='svntogit/packages.git' href='/svntogit/packages.git/'>svntogit/packages.git</a></td></tr>  
 <tr><td class='sub'>Git clone of the 'packages' repository  
 </td><td class='sub right'></td></tr></table>  
 <table class='tabs'><tr><td>  
 <a href='/svntogit/packages.git/?h=packages/xorg-server'>summary</a><a href='/svntogit/packages.git/refs/?h=packages/xorg-server'>refs</a><a href='/svntogit/packages.git/log/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>log</a><a class='active' href='/svntogit/packages.git/tree/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>tree</a><a href='/svntogit/packages.git/commit/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>commit</a><a href='/svntogit/packages.git/diff/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>diff</a><a href='/svntogit/packages.git/stats/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>stats</a></td><td class='form'><form class='right' method='get' action='/svntogit/packages.git/log/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch'>  
 <input type='hidden' name='h' value='packages/xorg-server'/><select name='qt'>  
 <option value='grep'>log msg</option>  
 <option value='author'>author</option>  
 <option value='committer'>committer</option>  
 <option value='range'>range</option>  
 </select>  
 <input class='txt' type='text' size='10' name='q' value=''/>  
 <input type='submit' value='search'/>  
 </form>  
 </td></tr></table>  
 <div class='path'>path: <a href='/svntogit/packages.git/tree/?h=packages/xorg-server'>root</a>/<a href='/svntogit/packages.git/tree/trunk?h=packages/xorg-server'>trunk</a>/<a href='/svntogit/packages.git/tree/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch</a></div><div class='content'>blob: 86744f1402eac379c2a994e43b72e911bf07a09a (<a href='/svntogit/packages.git/plain/trunk/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch?h=packages/xorg-server'>plain</a>)  
 <table summary='blob content' class='blob'>  
 <tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>  
 <a id='n2' href='#n2'>2</a>  
 <a id='n3' href='#n3'>3</a>  
 <a id='n4' href='#n4'>4</a>  
 <a id='n5' href='#n5'>5</a>  
 <a id='n6' href='#n6'>6</a>  
 <a id='n7' href='#n7'>7</a>  
 <a id='n8' href='#n8'>8</a>  
 <a id='n9' href='#n9'>9</a>  
 <a id='n10' href='#n10'>10</a>  
 <a id='n11' href='#n11'>11</a>  
 <a id='n12' href='#n12'>12</a>  
 <a id='n13' href='#n13'>13</a>  
 <a id='n14' href='#n14'>14</a>  
 <a id='n15' href='#n15'>15</a>  
 <a id='n16' href='#n16'>16</a>  
 <a id='n17' href='#n17'>17</a>  
 <a id='n18' href='#n18'>18</a>  
 <a id='n19' href='#n19'>19</a>  
 <a id='n20' href='#n20'>20</a>  
 <a id='n21' href='#n21'>21</a>  
 <a id='n22' href='#n22'>22</a>  
 <a id='n23' href='#n23'>23</a>  
 <a id='n24' href='#n24'>24</a>  
 <a id='n25' href='#n25'>25</a>  
 <a id='n26' href='#n26'>26</a>  
 <a id='n27' href='#n27'>27</a>  
 <a id='n28' href='#n28'>28</a>  
 <a id='n29' href='#n29'>29</a>  
 <a id='n30' href='#n30'>30</a>  
 <a id='n31' href='#n31'>31</a>  
 <a id='n32' href='#n32'>32</a>  
 <a id='n33' href='#n33'>33</a>  
 <a id='n34' href='#n34'>34</a>  
 <a id='n35' href='#n35'>35</a>  
 <a id='n36' href='#n36'>36</a>  
 <a id='n37' href='#n37'>37</a>  
 <a id='n38' href='#n38'>38</a>  
 <a id='n39' href='#n39'>39</a>  
 <a id='n40' href='#n40'>40</a>  
 <a id='n41' href='#n41'>41</a>  
 <a id='n42' href='#n42'>42</a>  
 <a id='n43' href='#n43'>43</a>  
 <a id='n44' href='#n44'>44</a>  
 <a id='n45' href='#n45'>45</a>  
 <a id='n46' href='#n46'>46</a>  
 <a id='n47' href='#n47'>47</a>  
 <a id='n48' href='#n48'>48</a>  
 <a id='n49' href='#n49'>49</a>  
 <a id='n50' href='#n50'>50</a>  
 <a id='n51' href='#n51'>51</a>  
 <a id='n52' href='#n52'>52</a>  
 <a id='n53' href='#n53'>53</a>  
 <a id='n54' href='#n54'>54</a>  
 <a id='n55' href='#n55'>55</a>  
 <a id='n56' href='#n56'>56</a>  
 <a id='n57' href='#n57'>57</a>  
 <a id='n58' href='#n58'>58</a>  
 <a id='n59' href='#n59'>59</a>  
 <a id='n60' href='#n60'>60</a>  
 <a id='n61' href='#n61'>61</a>  
 <a id='n62' href='#n62'>62</a>  
 <a id='n63' href='#n63'>63</a>  
 <a id='n64' href='#n64'>64</a>  
 <a id='n65' href='#n65'>65</a>  
 <a id='n66' href='#n66'>66</a>  
 <a id='n67' href='#n67'>67</a>  
 <a id='n68' href='#n68'>68</a>  
 <a id='n69' href='#n69'>69</a>  
 <a id='n70' href='#n70'>70</a>  
 <a id='n71' href='#n71'>71</a>  
 <a id='n72' href='#n72'>72</a>  
 <a id='n73' href='#n73'>73</a>  
 <a id='n74' href='#n74'>74</a>  
 <a id='n75' href='#n75'>75</a>  
 <a id='n76' href='#n76'>76</a>  
 <a id='n77' href='#n77'>77</a>  
 <a id='n78' href='#n78'>78</a>  
 <a id='n79' href='#n79'>79</a>  
 <a id='n80' href='#n80'>80</a>  
 <a id='n81' href='#n81'>81</a>  
 <a id='n82' href='#n82'>82</a>  
 <a id='n83' href='#n83'>83</a>  
 <a id='n84' href='#n84'>84</a>  
 <a id='n85' href='#n85'>85</a>  
 <a id='n86' href='#n86'>86</a>  
 <a id='n87' href='#n87'>87</a>  
 <a id='n88' href='#n88'>88</a>  
 <a id='n89' href='#n89'>89</a>  
 <a id='n90' href='#n90'>90</a>  
 <a id='n91' href='#n91'>91</a>  
 <a id='n92' href='#n92'>92</a>  
 <a id='n93' href='#n93'>93</a>  
 <a id='n94' href='#n94'>94</a>  
 <a id='n95' href='#n95'>95</a>  
 <a id='n96' href='#n96'>96</a>  
 <a id='n97' href='#n97'>97</a>  
 <a id='n98' href='#n98'>98</a>  
 <a id='n99' href='#n99'>99</a>  
 <a id='n100' href='#n100'>100</a>  
 <a id='n101' href='#n101'>101</a>  
 <a id='n102' href='#n102'>102</a>  
 <a id='n103' href='#n103'>103</a>  
 <a id='n104' href='#n104'>104</a>  
 <a id='n105' href='#n105'>105</a>  
 <a id='n106' href='#n106'>106</a>  
 <a id='n107' href='#n107'>107</a>  
 <a id='n108' href='#n108'>108</a>  
 <a id='n109' href='#n109'>109</a>  
 <a id='n110' href='#n110'>110</a>  
 <a id='n111' href='#n111'>111</a>  
 <a id='n112' href='#n112'>112</a>  
 <a id='n113' href='#n113'>113</a>  
 <a id='n114' href='#n114'>114</a>  
 <a id='n115' href='#n115'>115</a>  
 <a id='n116' href='#n116'>116</a>  
 <a id='n117' href='#n117'>117</a>  
 <a id='n118' href='#n118'>118</a>  
 <a id='n119' href='#n119'>119</a>  
 <a id='n120' href='#n120'>120</a>  
 <a id='n121' href='#n121'>121</a>  
 <a id='n122' href='#n122'>122</a>  
 <a id='n123' href='#n123'>123</a>  
 <a id='n124' href='#n124'>124</a>  
 <a id='n125' href='#n125'>125</a>  
 <a id='n126' href='#n126'>126</a>  
 <a id='n127' href='#n127'>127</a>  
 <a id='n128' href='#n128'>128</a>  
 <a id='n129' href='#n129'>129</a>  
 <a id='n130' href='#n130'>130</a>  
 <a id='n131' href='#n131'>131</a>  
 <a id='n132' href='#n132'>132</a>  
 <a id='n133' href='#n133'>133</a>  
 <a id='n134' href='#n134'>134</a>  
 <a id='n135' href='#n135'>135</a>  
 <a id='n136' href='#n136'>136</a>  
 <a id='n137' href='#n137'>137</a>  
 <a id='n138' href='#n138'>138</a>  
 <a id='n139' href='#n139'>139</a>  
 <a id='n140' href='#n140'>140</a>  
 <a id='n141' href='#n141'>141</a>  
 <a id='n142' href='#n142'>142</a>  
 <a id='n143' href='#n143'>143</a>  
 <a id='n144' href='#n144'>144</a>  
 <a id='n145' href='#n145'>145</a>  
 <a id='n146' href='#n146'>146</a>  
 <a id='n147' href='#n147'>147</a>  
 <a id='n148' href='#n148'>148</a>  
 <a id='n149' href='#n149'>149</a>  
 <a id='n150' href='#n150'>150</a>  
 <a id='n151' href='#n151'>151</a>  
 <a id='n152' href='#n152'>152</a>  
 <a id='n153' href='#n153'>153</a>  
 <a id='n154' href='#n154'>154</a>  
 <a id='n155' href='#n155'>155</a>  
 <a id='n156' href='#n156'>156</a>  
 <a id='n157' href='#n157'>157</a>  
 <a id='n158' href='#n158'>158</a>  
 <a id='n159' href='#n159'>159</a>  
 <a id='n160' href='#n160'>160</a>  
 <a id='n161' href='#n161'>161</a>  
 <a id='n162' href='#n162'>162</a>  
 <a id='n163' href='#n163'>163</a>  
 <a id='n164' href='#n164'>164</a>  
 <a id='n165' href='#n165'>165</a>  
 <a id='n166' href='#n166'>166</a>  
 <a id='n167' href='#n167'>167</a>  
 <a id='n168' href='#n168'>168</a>  
 <a id='n169' href='#n169'>169</a>  
 <a id='n170' href='#n170'>170</a>  
 <a id='n171' href='#n171'>171</a>  
 <a id='n172' href='#n172'>172</a>  
 <a id='n173' href='#n173'>173</a>  
 <a id='n174' href='#n174'>174</a>  
 <a id='n175' href='#n175'>175</a>  
 <a id='n176' href='#n176'>176</a>  
 <a id='n177' href='#n177'>177</a>  
 <a id='n178' href='#n178'>178</a>  
 <a id='n179' href='#n179'>179</a>  
 <a id='n180' href='#n180'>180</a>  
 <a id='n181' href='#n181'>181</a>  
 <a id='n182' href='#n182'>182</a>  
 <a id='n183' href='#n183'>183</a>  
 <a id='n184' href='#n184'>184</a>  
 <a id='n185' href='#n185'>185</a>  
 <a id='n186' href='#n186'>186</a>  
 <a id='n187' href='#n187'>187</a>  
 <a id='n188' href='#n188'>188</a>  
 <a id='n189' href='#n189'>189</a>  
 <a id='n190' href='#n190'>190</a>  
 <a id='n191' href='#n191'>191</a>  
 <a id='n192' href='#n192'>192</a>  
 <a id='n193' href='#n193'>193</a>  
 <a id='n194' href='#n194'>194</a>  
 <a id='n195' href='#n195'>195</a>  
 <a id='n196' href='#n196'>196</a>  
 <a id='n197' href='#n197'>197</a>  
 <a id='n198' href='#n198'>198</a>  
 <a id='n199' href='#n199'>199</a>  
 <a id='n200' href='#n200'>200</a>  
 <a id='n201' href='#n201'>201</a>  
 <a id='n202' href='#n202'>202</a>  
 <a id='n203' href='#n203'>203</a>  
 <a id='n204' href='#n204'>204</a>  
 <a id='n205' href='#n205'>205</a>  
 <a id='n206' href='#n206'>206</a>  
 <a id='n207' href='#n207'>207</a>  
 <a id='n208' href='#n208'>208</a>  
 <a id='n209' href='#n209'>209</a>  
 <a id='n210' href='#n210'>210</a>  
 </pre></td>  
 <td class='lines'><pre><code>From e1a7f4bb5333b0271d29f785eb55f1c3273e626a Mon Sep 17 00:00:00 2001  
 From: Peter Hutterer &lt;peter.hutterer&#64;who-t.net&gt;  
3  Date: Tue, 5 May 2015 14:18:54 +1000  Date: Tue, 5 May 2015 14:18:54 +1000
4  Subject: [PATCH] dix: Add unaccelerated valuators to the ValuatorMask  Subject: [PATCH] dix: Add unaccelerated valuators to the ValuatorMask
5    
# Line 286  valuator_mask_drop_unaccelerated() call. Line 23  valuator_mask_drop_unaccelerated() call.
23  through all valuators on every event, we can just drop the bits we know we  through all valuators on every event, we can just drop the bits we know we
24  don't want.  don't want.
25    
26  Signed-off-by: Peter Hutterer &lt;peter.hutterer&#64;who-t.net&gt;  Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
27  Reviewed-by: Hans de Goede &lt;hdegoede&#64;redhat.com&gt;  Reviewed-by: Hans de Goede <hdegoede@redhat.com>
28  <span class="hl kwb">---</span>  ---
29   dix/inpututils.c               | 82 +++++++++++++++++++++++++++++++++++++++---   dix/inpututils.c               | 82 +++++++++++++++++++++++++++++++++++++++---
30   hw/xfree86/common/xf86Module.h |  2 +-   hw/xfree86/common/xf86Module.h |  2 +-
31   include/input.h                | 15 ++++++++   include/input.h                | 15 ++++++++
# Line 297  Reviewed-by: Hans de Goede &lt;hdegoede& Line 34  Reviewed-by: Hans de Goede &lt;hdegoede&
34    
35  diff --git a/dix/inpututils.c b/dix/inpututils.c  diff --git a/dix/inpututils.c b/dix/inpututils.c
36  index 5c2a32d..1363988 100644  index 5c2a32d..1363988 100644
37  <span class="hl kwb">--- a/dix/inpututils.c</span>  --- a/dix/inpututils.c
38  <span class="hl kwa">+++ b/dix/inpututils.c</span>  +++ b/dix/inpututils.c
39  &#64;&#64; -505,11 +505,8 &#64;&#64; valuator_mask_isset(const ValuatorMask *mask, int valuator)  @@ -505,11 +505,8 @@ valuator_mask_isset(const ValuatorMask *mask, int valuator)
40       return mask-&gt;last_bit &gt;= valuator &amp;&amp; BitIsOn(mask-&gt;mask, valuator);       return mask->last_bit >= valuator && BitIsOn(mask->mask, valuator);
41   }   }
42    
43  <span class="hl kwb">-/**</span>  -/**
44  <span class="hl kwb">- * Set the valuator to the given floating-point data.</span>  - * Set the valuator to the given floating-point data.
45  <span class="hl kwb">- */</span>  - */
46  <span class="hl kwb">-void</span>  -void
47  <span class="hl kwb">-valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)</span>  -valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
48  <span class="hl kwa">+static inline void</span>  +static inline void
49  <span class="hl kwa">+_valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)</span>  +_valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
50   {   {
51       mask-&gt;last_bit = max(valuator, mask-&gt;last_bit);       mask->last_bit = max(valuator, mask->last_bit);
52       SetBit(mask-&gt;mask, valuator);       SetBit(mask->mask, valuator);
53  &#64;&#64; -517,6 +514,17 &#64;&#64; valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)  @@ -517,6 +514,17 @@ valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
54   }   }
55    
56   /**   /**
57  <span class="hl kwa">+ * Set the valuator to the given floating-point data.</span>  + * Set the valuator to the given floating-point data.
58  <span class="hl kwa">+ */</span>  + */
59  <span class="hl kwa">+void</span>  +void
60  <span class="hl kwa">+valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)</span>  +valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
61  <span class="hl kwa">+{</span>  +{
62  <span class="hl kwa">+    BUG_WARN_MSG(mask-&gt;has_unaccelerated,</span>  +    BUG_WARN_MSG(mask->has_unaccelerated,
63  <span class="hl kwa">+                 &quot;Do not mix valuator types, zero mask first\n&quot;);</span>  +                 "Do not mix valuator types, zero mask first\n");
64  <span class="hl kwa">+    _valuator_mask_set_double(mask, valuator, data);</span>  +    _valuator_mask_set_double(mask, valuator, data);
65  <span class="hl kwa">+}</span>  +}
66  <span class="hl kwa">+</span>  +
67  <span class="hl kwa">+/**</span>  +/**
68    * Set the valuator to the given integer data.    * Set the valuator to the given integer data.
69    */    */
70   void   void
71  &#64;&#64; -594,11 +602,15 &#64;&#64; valuator_mask_unset(ValuatorMask *mask, int valuator)  @@ -594,11 +602,15 @@ valuator_mask_unset(ValuatorMask *mask, int valuator)
72    
73           ClearBit(mask-&gt;mask, valuator);           ClearBit(mask->mask, valuator);
74           mask-&gt;valuators[valuator] = 0.0;           mask->valuators[valuator] = 0.0;
75  <span class="hl kwa">+        mask-&gt;unaccelerated[valuator] = 0.0;</span>  +        mask->unaccelerated[valuator] = 0.0;
76    
77           for (i = 0; i &lt;= mask-&gt;last_bit; i++)           for (i = 0; i <= mask->last_bit; i++)
78               if (valuator_mask_isset(mask, i))               if (valuator_mask_isset(mask, i))
79                   lastbit = max(lastbit, i);                   lastbit = max(lastbit, i);
80           mask-&gt;last_bit = lastbit;           mask->last_bit = lastbit;
81  <span class="hl kwa">+</span>  +
82  <span class="hl kwa">+        if (mask-&gt;last_bit == -1)</span>  +        if (mask->last_bit == -1)
83  <span class="hl kwa">+            mask-&gt;has_unaccelerated = FALSE;</span>  +            mask->has_unaccelerated = FALSE;
84       }       }
85   }   }
86    
87  &#64;&#64; -611,6 +623,66 &#64;&#64; valuator_mask_copy(ValuatorMask *dest, const ValuatorMask *src)  @@ -611,6 +623,66 @@ valuator_mask_copy(ValuatorMask *dest, const ValuatorMask *src)
88           valuator_mask_zero(dest);           valuator_mask_zero(dest);
89   }   }
90    
91  <span class="hl kwa">+Bool</span>  +Bool
92  <span class="hl kwa">+valuator_mask_has_unaccelerated(const ValuatorMask *mask)</span>  +valuator_mask_has_unaccelerated(const ValuatorMask *mask)
93  <span class="hl kwa">+{</span>  +{
94  <span class="hl kwa">+    return mask-&gt;has_unaccelerated;</span>  +    return mask->has_unaccelerated;
95  <span class="hl kwa">+}</span>  +}
96  <span class="hl kwa">+</span>  +
97  <span class="hl kwa">+void</span>  +void
98  <span class="hl kwa">+valuator_mask_drop_unaccelerated(ValuatorMask *mask)</span>  +valuator_mask_drop_unaccelerated(ValuatorMask *mask)
99  <span class="hl kwa">+{</span>  +{
100  <span class="hl kwa">+    memset(mask-&gt;unaccelerated, 0, sizeof(mask-&gt;unaccelerated));</span>  +    memset(mask->unaccelerated, 0, sizeof(mask->unaccelerated));
101  <span class="hl kwa">+    mask-&gt;has_unaccelerated = FALSE;</span>  +    mask->has_unaccelerated = FALSE;
102  <span class="hl kwa">+}</span>  +}
103  <span class="hl kwa">+</span>  +
104  <span class="hl kwa">+/**</span>  +/**
105  <span class="hl kwa">+ * Set both accelerated and unaccelerated value for this mask.</span>  + * Set both accelerated and unaccelerated value for this mask.
106  <span class="hl kwa">+ */</span>  + */
107  <span class="hl kwa">+void</span>  +void
108  <span class="hl kwa">+valuator_mask_set_unaccelerated(ValuatorMask *mask,</span>  +valuator_mask_set_unaccelerated(ValuatorMask *mask,
109  <span class="hl kwa">+                                int valuator,</span>  +                                int valuator,
110  <span class="hl kwa">+                                double accel,</span>  +                                double accel,
111  <span class="hl kwa">+                                double unaccel)</span>  +                                double unaccel)
112  <span class="hl kwa">+{</span>  +{
113  <span class="hl kwa">+    BUG_WARN_MSG(mask-&gt;last_bit != -1 &amp;&amp; !mask-&gt;has_unaccelerated,</span>  +    BUG_WARN_MSG(mask->last_bit != -1 && !mask->has_unaccelerated,
114  <span class="hl kwa">+                 &quot;Do not mix valuator types, zero mask first\n&quot;);</span>  +                 "Do not mix valuator types, zero mask first\n");
115  <span class="hl kwa">+    _valuator_mask_set_double(mask, valuator, accel);</span>  +    _valuator_mask_set_double(mask, valuator, accel);
116  <span class="hl kwa">+    mask-&gt;has_unaccelerated = TRUE;</span>  +    mask->has_unaccelerated = TRUE;
117  <span class="hl kwa">+    mask-&gt;unaccelerated[valuator] = unaccel;</span>  +    mask->unaccelerated[valuator] = unaccel;
118  <span class="hl kwa">+}</span>  +}
119  <span class="hl kwa">+</span>  +
120  <span class="hl kwa">+double</span>  +double
121  <span class="hl kwa">+valuator_mask_get_accelerated(const ValuatorMask *mask,</span>  +valuator_mask_get_accelerated(const ValuatorMask *mask,
122  <span class="hl kwa">+                              int valuator)</span>  +                              int valuator)
123  <span class="hl kwa">+{</span>  +{
124  <span class="hl kwa">+    return valuator_mask_get_double(mask, valuator);</span>  +    return valuator_mask_get_double(mask, valuator);
125  <span class="hl kwa">+}</span>  +}
126  <span class="hl kwa">+</span>  +
127  <span class="hl kwa">+double</span>  +double
128  <span class="hl kwa">+valuator_mask_get_unaccelerated(const ValuatorMask *mask,</span>  +valuator_mask_get_unaccelerated(const ValuatorMask *mask,
129  <span class="hl kwa">+                                int valuator)</span>  +                                int valuator)
130  <span class="hl kwa">+{</span>  +{
131  <span class="hl kwa">+    return mask-&gt;unaccelerated[valuator];</span>  +    return mask->unaccelerated[valuator];
132  <span class="hl kwa">+}</span>  +}
133  <span class="hl kwa">+</span>  +
134  <span class="hl kwa">+Bool</span>  +Bool
135  <span class="hl kwa">+valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,</span>  +valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
136  <span class="hl kwa">+                                  int valuator,</span>  +                                  int valuator,
137  <span class="hl kwa">+                                  double *accel,</span>  +                                  double *accel,
138  <span class="hl kwa">+                                  double *unaccel)</span>  +                                  double *unaccel)
139  <span class="hl kwa">+{</span>  +{
140  <span class="hl kwa">+    if (valuator_mask_isset(mask, valuator)) {</span>  +    if (valuator_mask_isset(mask, valuator)) {
141  <span class="hl kwa">+        if (accel)</span>  +        if (accel)
142  <span class="hl kwa">+            *accel = valuator_mask_get_accelerated(mask, valuator);</span>  +            *accel = valuator_mask_get_accelerated(mask, valuator);
143  <span class="hl kwa">+        if (unaccel)</span>  +        if (unaccel)
144  <span class="hl kwa">+            *unaccel = valuator_mask_get_unaccelerated(mask, valuator);</span>  +            *unaccel = valuator_mask_get_unaccelerated(mask, valuator);
145  <span class="hl kwa">+        return TRUE;</span>  +        return TRUE;
146  <span class="hl kwa">+    }</span>  +    }
147  <span class="hl kwa">+    else</span>  +    else
148  <span class="hl kwa">+        return FALSE;</span>  +        return FALSE;
149  <span class="hl kwa">+}</span>  +}
150  <span class="hl kwa">+</span>  +
151   int   int
152   CountBits(const uint8_t * mask, int len)   CountBits(const uint8_t * mask, int len)
153   {   {
154  diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h  diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
155  index e68fe9c..6133641 100644  index e68fe9c..6133641 100644
156  <span class="hl kwb">--- a/hw/xfree86/common/xf86Module.h</span>  --- a/hw/xfree86/common/xf86Module.h
157  <span class="hl kwa">+++ b/hw/xfree86/common/xf86Module.h</span>  +++ b/hw/xfree86/common/xf86Module.h
158  &#64;&#64; -81,7 +81,7 &#64;&#64; typedef enum {  @@ -81,7 +81,7 @@ typedef enum {
159    */    */
160   #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)   #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
161   #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0)   #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0)
162  <span class="hl kwb">-#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0)</span>  -#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0)
163  <span class="hl kwa">+#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 1)</span>  +#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 1)
164   #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0)   #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0)
165   #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)   #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
166    
167  diff --git a/include/input.h b/include/input.h  diff --git a/include/input.h b/include/input.h
168  index bf22dc7..0a4c4f7 100644  index bf22dc7..0a4c4f7 100644
169  <span class="hl kwb">--- a/include/input.h</span>  --- a/include/input.h
170  <span class="hl kwa">+++ b/include/input.h</span>  +++ b/include/input.h
171  &#64;&#64; -674,6 +674,21 &#64;&#64; extern _X_EXPORT Bool valuator_mask_fetch(const ValuatorMask *mask,  @@ -674,6 +674,21 @@ extern _X_EXPORT Bool valuator_mask_fetch(const ValuatorMask *mask,
172   extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,   extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,
173                                                    int valnum, double *val);                                                    int valnum, double *val);
174    
175  <span class="hl kwa">+extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);</span>  +extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);
176  <span class="hl kwa">+extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,</span>  +extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,
177  <span class="hl kwa">+                                                      int valuator,</span>  +                                                      int valuator,
178  <span class="hl kwa">+                                                      double accel,</span>  +                                                      double accel,
179  <span class="hl kwa">+                                                      double unaccel);</span>  +                                                      double unaccel);
180  <span class="hl kwa">+extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,</span>  +extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,
181  <span class="hl kwa">+                                                      int valuator);</span>  +                                                      int valuator);
182  <span class="hl kwa">+extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,</span>  +extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,
183  <span class="hl kwa">+                                                        int valuator);</span>  +                                                        int valuator);
184  <span class="hl kwa">+extern _X_EXPORT Bool valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,</span>  +extern _X_EXPORT Bool valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
185  <span class="hl kwa">+                                                        int valuator,</span>  +                                                        int valuator,
186  <span class="hl kwa">+                                                        double *accel,</span>  +                                                        double *accel,
187  <span class="hl kwa">+                                                        double *unaccel);</span>  +                                                        double *unaccel);
188  <span class="hl kwa">+extern _X_HIDDEN void valuator_mask_drop_unaccelerated(ValuatorMask *mask);</span>  +extern _X_HIDDEN void valuator_mask_drop_unaccelerated(ValuatorMask *mask);
189  <span class="hl kwa">+</span>  +
190   /* InputOption handling interface */   /* InputOption handling interface */
191   extern _X_EXPORT InputOption *input_option_new(InputOption *list,   extern _X_EXPORT InputOption *input_option_new(InputOption *list,
192                                                  const char *key,                                                  const char *key,
193  diff --git a/include/inpututils.h b/include/inpututils.h  diff --git a/include/inpututils.h b/include/inpututils.h
194  index 53c96ba..4e90815 100644  index 53c96ba..4e90815 100644
195  <span class="hl kwb">--- a/include/inpututils.h</span>  --- a/include/inpututils.h
196  <span class="hl kwa">+++ b/include/inpututils.h</span>  +++ b/include/inpututils.h
197  &#64;&#64; -36,8 +36,10 &#64;&#64; extern Mask event_filters[MAXDEVICES][MAXEVENTS];  @@ -36,8 +36,10 @@ extern Mask event_filters[MAXDEVICES][MAXEVENTS];
198    
199   struct _ValuatorMask {   struct _ValuatorMask {
200       int8_t last_bit;            /* highest bit set in mask */       int8_t last_bit;            /* highest bit set in mask */
201  <span class="hl kwa">+    int8_t has_unaccelerated;</span>  +    int8_t has_unaccelerated;
202       uint8_t mask[(MAX_VALUATORS + 7) / 8];       uint8_t mask[(MAX_VALUATORS + 7) / 8];
203       double valuators[MAX_VALUATORS];    /* valuator data */       double valuators[MAX_VALUATORS];    /* valuator data */
204  <span class="hl kwa">+    double unaccelerated[MAX_VALUATORS];    /* valuator data */</span>  +    double unaccelerated[MAX_VALUATORS];    /* valuator data */
205   };   };
206    
207   extern void verify_internal_event(const InternalEvent *ev);   extern void verify_internal_event(const InternalEvent *ev);
208  <span class="hl kwb">-- </span>  --
209  2.4.1  2.4.1
210    
 </code></pre></td></tr></table>  
 </div> <!-- class=content -->  
 <div class="foot" style="padding-left:1em;padding-right:1em;">  
 <p>Copyright &copy; 2002-2014 <a href="mailto:jvinet@zeroflux.org"  
 title="contact Judd Vinet">Judd Vinet</a> and <a href="mailto:aaron@archlinux.org"  
 title="contact Aaron Griffin">Aaron Griffin</a>. The Arch Linux name and logo  
 are recognized trademarks. Some rights reserved. The registered trademark  
 Linux&reg; is used pursuant to a sublicense from LMI, the exclusive licensee  
 of Linus Torvalds, owner of the mark on a world-wide basis.</p>  
 </div>  
 </div> <!-- id=cgit -->  
 </body>  
 </html>  

Legend:
Removed from v.2575  
changed lines
  Added in v.2576