<div dir="ltr"><div>My idea is that there still would be an indication of "fake resolution", but when that is turned on it also fills in the resolution values with this value as a guess. Then anything that fails to test the fake resolution flag would at least tend to produce stuff the same size as this does. It does seem possible to grep through the code for references to the fake resolution and see if they are all using a similar value.<br><br></div>What I am unsure of is if it is ok to write over the resolution fields when fake resolution is turned on. Is there some number in there that needs to be preserved?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 14, 2015 at 5:41 PM, Peter Hutterer <span dir="ltr"><<a href="mailto:peter.hutterer@who-t.net" target="_blank">peter.hutterer@who-t.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">please fix your email client to not drop CC's on reply.<br>
<span class=""><br>
On Sat, Jun 13, 2015 at 09:30:35AM -0700, Bill Spitzak wrote:<br>
> Can you set the "fake" resolution so that you get the same answer without<br>
> having to check if it is fake?<br>
><br>
> It looks like setting tp->device->abs.absinfo_x/y->resolution to diagonal *<br>
> 2 / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR would avoid the if statement, and<br>
> I would probably make everything that uses this resolution value "work" (in<br>
> that they all scale the same).<br>
<br>
</span>yes and no, we have a bunch of things that rely on resolution or otherwise<br>
guesswork (software button area for example). so the approach is a bit more<br>
complex, but setting a resolution based on the diagonal is an interesting<br>
approach.<br>
Have a look into that if you can please, see if the numbers work out.<br>
<br>
Cheers,<br>
   Peter<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> >>On 12-06-15 08:09, Peter Hutterer wrote:<br>
> >><br>
> >>>Some touchpads, e.g. the Cyapa in the Acer c720 have a small axis range<br>
> >>>([0, 870], [0, 470]), so the diagonal/magic value yields a hysteresis<br>
> >>>margin<br>
> >>>of 1 device unit. On that device, that's one-tenth of a millimeter,<br>
> >>>causing<br>
> >>>pointer motion just by holding the finger.<br>
> >>><br>
> >>>For touchpads that provide a physical resolution, set the hysteresis axes<br>
> >>>to<br>
> >>>0.5mm and do away with the magic factor.<br>
> >>><br>
> >>><a href="https://bugzilla.redhat.com/show_bug.cgi?id=1230441" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1230441</a><br>
> >>><br>
> >>>Signed-off-by: Peter Hutterer <<a href="mailto:peter.hutterer@who-t.net">peter.hutterer@who-t.net</a>><br>
> >>><br>
> >><br>
> >>Yes I think this is a good idea:<br>
> >><br>
> >>Reviewed-by: Hans de Goede <<a href="mailto:hdegoede@redhat.com">hdegoede@redhat.com</a>><br>
> >><br>
> >>Can you also ask the reporter of:<br>
> >><br>
> >><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90590" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=90590</a><br>
> >><br>
> >>To test libinput/master once you've pushed this? It will likely<br>
> >>help with his problem too.<br>
> >><br>
> >>Regards,<br>
> >><br>
> >>Hans<br>
> >><br>
> >><br>
> >><br>
> >>  ---<br>
> >>>   src/evdev-mt-touchpad.c | 16 ++++++++++++----<br>
> >>>   1 file changed, 12 insertions(+), 4 deletions(-)<br>
> >>><br>
> >>>diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c<br>
> >>>index 8c28ff7..e9870ad 100644<br>
> >>>--- a/src/evdev-mt-touchpad.c<br>
> >>>+++ b/src/evdev-mt-touchpad.c<br>
> >>>@@ -1495,10 +1495,18 @@ tp_init(struct tp_dispatch *tp,<br>
> >>>                                                        EV_ABS,<br>
> >>>                                                        ABS_MT_DISTANCE);<br>
> >>><br>
> >>>-       tp->hysteresis_margin.x =<br>
> >>>-               diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;<br>
> >>>-       tp->hysteresis_margin.y =<br>
> >>>-               diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;<br>
> >>>+       if (device->abs.fake_resolution) {<br>
> >>>+               tp->hysteresis_margin.x =<br>
> >>>+                       diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;<br>
> >>>+               tp->hysteresis_margin.y =<br>
> >>>+                       diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;<br>
> >>>+       } else {<br>
> >>>+               int res_x = tp->device->abs.absinfo_x->resolution,<br>
> >>>+                   res_y = tp->device->abs.absinfo_y->resolution;<br>
> >>>+<br>
> >>>+               tp->hysteresis_margin.x = res_x/2;<br>
> >>>+               tp->hysteresis_margin.y = res_y/2;<br>
> >>>+       }<br>
> >>><br>
> >>>         if (tp_init_accel(tp, diagonal) != 0)<br>
> >>>                 return -1;<br>
> >>><br>
> >>>  _______________________________________________<br>
> >>wayland-devel mailing list<br>
> >><a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
> >><a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
> >><br>
> ><br>
><br>
><br>
> _______________________________________________<br>
> wayland-devel mailing list<br>
> <a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
><br>
</div></div></blockquote></div><br></div>