← Back to team overview

desktop-packages team mailing list archive

[Bug 621432]

 

I don't know If this is caused by the same issue, but the problem is
quite siilar, so I attach this as a commen instead of filing a new bug.
I'm using debian testing / x.org 1.17.2 with a Lenovo U41 which has an
ALPS touchpad.

The problem is that the touchpad is way faster on the horizontal axis
than on the vertical axis: while a swipe from left to right will move
the pointer approximately from the left to the right screen edge, a
complete top-down swipe only covers one quarter of the screen - of
course influenced by the acceleration settings.

Fiddling with the "VertResolution" and "HorizResolution" options didn't
show any effect for me.

Looking at the code it seems that these options were actually rendered
useless when the synaptics driver scaling was removed in commit
#0fb59b3487d57523a03f078a2061e2ea0cacbc7c. The driver always passes the
resolution values reported by the device to the server instead of the
overwritten ones from the config.

Some debugging later, this is what the device reports to the server: 
minx: 0, maxx: 4095, resx: 40
miny: 0, maxy: 2047, resy: 71

So it looks like the device has indeed a different resolution in x and y
and this seems to get mix up the scaling somehow.


I tried to make the driver pass the VertResolution and HorizResolution parameters instead of the device values by changing some lines from synaptics.c:

xf86InitValuatorAxisStruct(dev, 0, axes_labels[0], min, max, priv->resx
* 1000, 0, priv->resx * 1000, Relative);

into

xf86InitValuatorAxisStruct(dev, 0, axes_labels[0], min, max,
priv->synpara.resolution_horiz * 1000, 0, priv->synpara.resolution_horiz
* 1000, Relative);

and

xf86InitValuatorAxisStruct(dev, 1, axes_labels[1], min, max, priv->resy
* 1000, 0, priv->resy * 1000, Relative);

into

xf86InitValuatorAxisStruct(dev, 1, axes_labels[1], min, max,
priv->synpara.resolution_vert * 1000, 0, priv->synpara.resolution_vert *
1000, Relative);


After that, setting both "VertResolution" and "HorizResolution" to the same value, makes the touchpad behave as expected. 

But I think the real problem is somewhere deeper in getevents.c

As far as I understand the scale_for_device_resolution function tries to
map the touch pad size to the screen size which works fine as long as
resolution_ratio equals 1 which is the case for all pads with an equal
x/y resolution and breaks on devices with uneven resolutions. But why is
the resolution involved in the scaling anyway? If we try to map 1the
device size to the screen size we don't need to bother about the device
resolution. The axis sizes and the screen resolution should be enough?!

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to xserver-xorg-input-synaptics in Ubuntu.
https://bugs.launchpad.net/bugs/621432

Title:
  Touchpad speed asymetrical (horizontal faster than vertical)

Status in Xserver Xorg Input Synaptics:
  Confirmed
Status in xserver-xorg-input-synaptics package in Ubuntu:
  Fix Released

Bug description:
  Binary package hint: xserver-xorg-input-synaptics

  Using Ubuntu Maverick on a Samsung NC10 : since that release, moving
  my touchpad horizontally makes the pointer to move faster than moving
  it vertically.

  I already had this behavior when I was using X from xorg-edgers PPA
  with Lucid.

  Please let me know if you need additionnal informations.

  ProblemType: Bug
  DistroRelease: Ubuntu 10.10
  Package: xserver-xorg-input-synaptics 1.2.2-2ubuntu3 [modified: usr/bin/synclient usr/bin/syndaemon]
  ProcVersionSignature: Ubuntu 2.6.35-15.21-generic 2.6.35.1
  Uname: Linux 2.6.35-15-generic i686
  Architecture: i386
  DRM.card0.LVDS.1:
   status: connected
   enabled: enabled
   dpms: On
   modes: 1024x600
   edid-base64: AP///////wAOFMQEAAAAAAsTAQOAFw54ClB1klhWkicfUFQAAAABAQEBAQEBAQEBAQEBAQEBlBEAsEBYGSAwIDYA3oIAAAAZAAAADwAAAAAAAAAAACBuBQ8AAAAA/gBDUFQgICAgICAgICAgAAAA/gBDTEFBMTAyTkEwQSAgAGU=
  DRM.card0.VGA.1:
   status: disconnected
   enabled: disabled
   dpms: Off
   modes: 
   edid-base64:
  Date: Fri Aug 20 23:57:05 2010
  InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100812)
  MachineType: SAMSUNG ELECTRONICS CO., LTD. NC10
  ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.35-15-generic root=UUID=14c3da20-90cd-416c-932d-fc86ad750d06 ro quiet splash
  ProcEnviron:
   LANG=fr_FR.utf8
   SHELL=/bin/bash
  SourcePackage: xserver-xorg-input-synaptics
  dmi.bios.date: 09/08/2009
  dmi.bios.vendor: Phoenix Technologies Ltd.
  dmi.bios.version: 11CA.M015.20090908.RHU
  dmi.board.name: NC10
  dmi.board.vendor: SAMSUNG ELECTRONICS CO., LTD.
  dmi.board.version: Not Applicable
  dmi.chassis.asset.tag: No Asset Tag
  dmi.chassis.type: 10
  dmi.chassis.vendor: SAMSUNG ELECTRONICS CO., LTD.
  dmi.chassis.version: N/A
  dmi.modalias: dmi:bvnPhoenixTechnologiesLtd.:bvr11CA.M015.20090908.RHU:bd09/08/2009:svnSAMSUNGELECTRONICSCO.,LTD.:pnNC10:pvrNotApplicable:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNC10:rvrNotApplicable:cvnSAMSUNGELECTRONICSCO.,LTD.:ct10:cvrN/A:
  dmi.product.name: NC10
  dmi.product.version: Not Applicable
  dmi.sys.vendor: SAMSUNG ELECTRONICS CO., LTD.
  glxinfo: Error: [Errno 2] Aucun fichier ou dossier de ce type
  system:
   distro:             Ubuntu
   codename:           maverick
   architecture:       i686
   kernel:             2.6.35-15-generic

To manage notifications about this bug go to:
https://bugs.launchpad.net/xserver-xorg-input-synaptics/+bug/621432/+subscriptions