On Thu, Oct 11, 2012 at 12:36 PM, Favux ... <favux.is@...> wrote:
> On Thu, Oct 11, 2012 at 11:25 AM, Zauber Paracelsus <zauber@...> wrote:
>> On Wed, 10 Oct 2012 23:13:43 -0500
>> "Favux ..." <favux.is@...> wrote:
>> I had been using this patch:
>> That is one that Nikolai had attached to an email in the original thread. It was a backport of the fix to version 1.11.4 of Xorg, the same version Ubuntu Precise currently uses.
>> My guess is that it might be patch ordering. Under the debian/patches folder is a file named "series" which has these two comments at the top:
>> ## Patches with a number < 100 are applied in debian.
>> ## Ubuntu patches start with 100.
>> So, I tried placing it in various different orderings, though still no luck. Might not be patch ordering.
> I don't think it is ordering. I downloaded the source code i.e.
> apt-get source xserver-xorg-core
> And then applied the patch to getevents.c and got the same error:
> patching file xorg-server-1.11.4/dix/getevents.c
> Hunk #1 FAILED at 1078.
> 1 out of 1 hunk FAILED -- saving rejects to file
> Looking at the source code in getevents.c it looks like things have
> changed quite a bit. For one thing we seem to be at line 1136 instead
> of around line 1078 in the patch. But I don't think it is the offset.
> It looks to be the function I think we're trying to patch has changed
> a bit:
> * Apply the device's transformation matrix to the valuator mask and replace
> * the scaled values in mask. This transformation only applies to valuators
> * 0 and 1, others will be untouched.
> * @param dev The device the valuators came from
> * @param[in,out] mask The valuator mask.
> static void
> transformAbsolute(DeviceIntPtr dev, ValuatorMask *mask)
> double x, y, ox, oy;
> if (valuator_mask_isset(mask, 0))
> ox = x = valuator_mask_get_double(mask, 0);
> ox = x = dev->last.valuators;
> if (valuator_mask_isset(mask, 1))
> oy = y = valuator_mask_get_double(mask, 1);
> oy = y = dev->last.valuators;
> transform(&dev->transform, &x, &y);
> if (valuator_mask_isset(mask, 0) || ox != x)
> valuator_mask_set_double(mask, 0, x);
> if (valuator_mask_isset(mask, 1) || oy != y)
> valuator_mask_set_double(mask, 1, y);
> So that's what needs to be addressed.
Oops, forgot to send to DIGImend-users too.