synaptics: ValuatorAxis limits are set from device limits => non-mooth scrolling
Tibor Zenis
zenis at fmph.uniba.sk
Tue May 11 09:01:09 PDT 2010
Hello,
the synaptics driver sets the ValuatorAxis limits to the device limits
(like an absolute axis device - synaptics driver sends relative events
to X-server) and the X pointer position can obtain only discrete values.
The cursor moves by stairs.
Example:
X-server x-resolution: 1920
Touchpad: x-axis range 32 - 544
Only every 1920 / (544 - 32) = 3.75 column can be hit
Next simple patch disables setup of the ValuatorAxis limits and after
applying the patch the cursor moves smoothly with a pixel precision.
Regards,
Tibor Zenis
--- xserver-xorg-input-synaptics-1.2.1/src/synaptics.c 2010-04-01 16:32:13.000000000 +0200
+++ xserver-xorg-input-synaptics-1.2.1_fix/src/synaptics.c 2010-04-01 16:17:47.000000000 +0200
@@ -922,7 +922,8 @@ DeviceInit(DeviceIntPtr dev)
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
axes_labels[0],
#endif
- min, max, priv->resx * 1000, 0, priv->resx * 1000);
+// min, max, priv->resx * 1000, 0, priv->resx * 1000);
+ -1, -1, 1, 0, 1);
xf86InitValuatorDefaults(dev, 0);
/* Y valuator */
@@ -940,7 +941,8 @@ DeviceInit(DeviceIntPtr dev)
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
axes_labels[1],
#endif
- min, max, priv->resy * 1000, 0, priv->resy * 1000);
+// min, max, priv->resy * 1000, 0, priv->resy * 1000);
+ -1, -1, 1, 0, 1);
xf86InitValuatorDefaults(dev, 1);
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
--
,..,.,..,.,..,.,..,.,..,.,..,
; Tibor Zenis ;
: zenis @ fmph . uniba . sk :
'``'`'``'`'``'`'``'`'``'`'``'
More information about the xorg-devel
mailing list