Re: [DIGImend-users] Bizarre Tablet Issues Return
Brought to you by:
spb_nick
From: Favux ... <fav...@gm...> - 2012-10-11 17:37:49
|
On Thu, Oct 11, 2012 at 12:36 PM, Favux ... <fav...@gm...> wrote: > On Thu, Oct 11, 2012 at 11:25 AM, Zauber Paracelsus <za...@gr...> wrote: >> On Wed, 10 Oct 2012 23:13:43 -0500 >> "Favux ..." <fav...@gm...> wrote: >> >> I had been using this patch: >> http://sourceforge.net/mailarchive/attachment.php?list_name=digimend-users&message_id=4FB25214.7050103%40gmail.com&counter=1 >> >> 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. > xorg-server-1.11.4: > 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 > xorg-server-1.11.4/dix/getevents.c.rej > > 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); > else > ox = x = dev->last.valuators[0]; > > if (valuator_mask_isset(mask, 1)) > oy = y = valuator_mask_get_double(mask, 1); > else > oy = y = dev->last.valuators[1]; > > 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. > > Favux Oops, forgot to send to DIGImend-users too. |