Extra pointer motion with current git xf86-input-synaptics

Magnus Kessler Magnus.Kessler at gmx.net
Sun Sep 28 00:23:51 PDT 2008


On Sunday 28 September 2008, Peter Hutterer wrote:
> On Sat, Sep 27, 2008 at 06:10:32PM +0100, Magnus Kessler wrote:
> > Since updating to the current git version of xorg-server, inputproto
> > and xf86-input-synaptics I observe extra pointer movements for every
> > event generated by the touchpad.
> >
> > Even when not touching the pad and using the buttons instead the
> > pointer moves 1 pixel to the top-left which each event (x and y
> > coordinate decrease by 1 every time). Equally, each event generated
> > from touching the pad seems to have this extra movement towards the
> > top-left of the screen.
>
> what hardware do you have?
> Any special options in xorg.conf/the fdi file?
>
> Cheers,
>   Peter

This is with an external mini-keyboard with built-in touchpad. Dmesg reports 
it as

Synaptics Touchpad, model: 1, fw: 4.1, id: 0x14aa1, caps: 0x0/0x0

and in Xorg.0.log the xf86-input-synaptics driver reports

(**) Option "Device" "/dev/input/event1"
(II) SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472
(II) SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448
(II) SynPS/2 Synaptics TouchPad: pressure range 0 - 255
(II) SynPS/2 Synaptics TouchPad: finger width range 0 - 0
(II) SynPS/2 Synaptics TouchPad: buttons: left right middle double triple
(**) Option "SHMConfig" "1"
(**) Option "VertEdgeScroll" "1"
(**) Option "HorizEdgeScroll" "1"
(**) Option "LockedDrags" "0"
(**) Option "TapButton1" "1"
(**) Option "PalmDetect" "yes"

The fdi file I'm using is

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.Emulate3Buttons" 
type="string">yes</merge>
        <merge key="input.x11_options.LockedDrags" type="string">0</merge>
        <merge key="input.x11_options.PalmDetect" type="string">yes</merge>
        <merge key="input.x11_options.CoastingSpeed" 
type="string">20</merge>
        <merge key="input.x11_options.TapButton1" type="string">1</merge>
        <merge key="input.x11_options.VertEdgeScroll" 
type="string">1</merge>
        <merge key="input.x11_options.HorizEdgeScroll" 
type="string">1</merge>
        <merge key="input.x11_options.SHMConfig" type="string">1</merge>
      </match>
    </match>
  </device>
</deviceinfo>


I have just reverted the part of commit  
c405a69f83dab77cfe6c76f718a3ca5614a85918 that passes the actual x/y ranges 
to xf86InitValuatorAxisStruct. Now the extra movement is gone, but I get a 
somewhat quicker cursor movement than I was used to before. This would be 
due to the other recent changes that set new default values for the 
acceleration parameters, of course.

I'm trying to see where in the valuators are actually used inside the X 
server. With a smaller range than [0, -1] some rounding error (?) seems to 
create that extra pixel offset for each event processed. This is on a 
64-bit platform, in case this is important.

Any hints on where to look next are welcome.

Cheers,

Magnus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.x.org/archives/xorg/attachments/20080928/554abcde/attachment.pgp>


More information about the xorg mailing list