[intrepid] wave like mouse movements using touchpad on Samsung NC10

Bug #295980 reported by NuZeb
46
This bug affects 7 people
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
Wishlist
xserver-xorg-input-synaptics (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Making horizontal finger movement on the touchpad of a Sasmung NC10 netbook leads to wave like (up and down) pointer movements on the screen. This occurs here on a fresh installed Ubuntu 8.10. Vertical movement works fine.
[lspci]
00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GME Express Memory Controller Hub [8086:27ac] (rev 03)
     Subsystem: Samsung Electronics Co Ltd Device [144d:ca00]
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GME Express Integrated Graphics Controller [8086:27ae] (rev 03)
     Subsystem: Samsung Electronics Co Ltd Device [144d:ca00]

Revision history for this message
In , n8han (nathan-technically) wrote :

Created an attachment (id=20028)
VertAdjustmentFactor option to alter Y sensitivity

This patch adds an option to set an adjustment factor for vertical movement. At its default value of 1.0 there is no change, but with a setting of 0.6 it corrects the touchpad of the HP 2133 (for example) to have similar sensitivity in the x and y directions.

I made the patch on a git branch just using "git diff master". If it is not in the correct format just let me know and I'll be happy to make another one.

Revision history for this message
NuZeb (nudelzebra) wrote : wave like mouse movements using touchpad on Samsung NC10

Making horizontal finger movement on the touchpad of a Sasmung NC10 netbook leads to wave like (up and down) pointer movements on the screen. This occurs here on a fresh installed Ubuntu 8.10. Vertical movement works fine.

Revision history for this message
xteejx (xteejx) wrote :

Hi NuZeb,

Thanks for taking the time to report this problem and make Ubuntu better.
Can you open a terminal/console and enter the following commands:

cd /var/lib/acpi-support/; grep '.' *-* > ~/laptop
uname -a > ~/uname-a
cat /proc/version_signature > ~/version_signature
sudo lspci -vvnn > ~/lspci-vvnn
lshal > ~/lshal
cat /proc/bus/input/devices > ~/devices
dmesg > ~/dmesg

Attach laptop, uname-a, version_signature, lspci-vvnn, lshal, devices and dmesg to the bug report as separate attachments (these will all be in your home folder).
Also attach the file /var/log/Xorg.0.log.
Thank you.

Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
NuZeb (nudelzebra) wrote :
Revision history for this message
xteejx (xteejx) wrote :

There should be enough information here now to help with diagnosing the problem. If another traiger needs any more information please provide it to enable them and the developers to resolve this problem. Thanks again and good luck :)

Changed in xserver-xorg-input-synaptics:
status: Incomplete → Confirmed
Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :
Revision history for this message
choad (richm) wrote :

is it possible that the symptoms you describe are caused by the vertical sensitivity being about 3 times greater than the horizontal sensitivity? that seems to be the case for me.

Revision history for this message
NuZeb (nudelzebra) wrote :

@choad: I don't know. How can I check and/or change this?

Revision history for this message
choad (richm) wrote :

i don;t know how to fix it, but to test it just draw a circle on the touchpad with your finger and look at the mouse movment. the circle it draws with the mouse cursor should be about 3x taller than it is wide. made a thread on ubuntuforums asking how to change this behaviour but no replies

Revision history for this message
In , Slacy (slacy) wrote :

Same thing for my new Lenovo S10 netbook -- the synaptics touchpad works just fine, but the vertical axis is way too sensitive. I'm fairly certain that a whole host of newer netbooks are using this same touchpad and have similar issues (some models are mentioned in the discussion linked above).

Is this the official bug tracking the patch into the system, or does that just happen informally on the list?

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

is there any reason not to include the same option for X scaling as well?
other than that, patch is looking good, please resubmit as git formatted patch.

Revision history for this message
In , n8han (nathan-technically) wrote :

I don't think a separate X adjustment factor is helpful as you can correct any aspect ratio with the Y factor alone, then adjust the overall movement with the regular settings.

For the patch, sorry, could you tell me what options to pass to git or where there is a patch submission guideline? I use git for my personal work all the time but I'm still unclear on how sharing patches is generally done, other than a straight diff.

Revision history for this message
In , Slacy (slacy) wrote :

I'd say that the right name is something like "AspectRatio" not "VertAdjustmentFactor" and this would remove any confusion over X vs. Y. (although one could wonder whether the aspect ratio is X/Y or Y/X)

Does anyone know what the Windows drivers are doing to fix this problem? I would assume that you could query the device for both the resolution in pixels as well as the resolution in mm, and then compute the AspectRatio from those numbers. I'm poking around on my hardware, but I don't expect to see anything obvious...

Let me know if there's anything I can try out here. For example, xinput list-properties, lsusb, lspci, etc...

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

> --- Comment #6 from Steve Lacy <email address hidden> 2008-12-09 21:29:23 PST ---
> I'd say that the right name is something like "AspectRatio" not
> "VertAdjustmentFactor" and this would remove any confusion over X vs. Y.
> (although one could wonder whether the aspect ratio is X/Y or Y/X)

I agree, AspectRatio is probably better, and it needs to be documented
accordingly in the man page.

> Does anyone know what the Windows drivers are doing to fix this problem? I
> would assume that you could query the device for both the resolution in pixels
> as well as the resolution in mm, and then compute the AspectRatio from those
> numbers. I'm poking around on my hardware, but I don't expect to see anything
> obvious...

I don't think the kernel exposes this information (if it even has it).

Regarding git patch submission: git commit, then git format-patch HEAD~1 (for
the last commit) and attach the patch file (usually
0001-whatever-commit-msg.patch).

Revision history for this message
In , Slacy (slacy) wrote :

If you do rename it "AspectRatio" I think you should use the convention of X/Y as is used in the TV & movie industry.

In other words:

A screen that's 4 units wide and 3 units high has an aspect ratio of "1.33"
A screen that's 16 units wide and 9 units high has an aspect ratio of "1.77"
etc.
Assuming a pad whose width is 5 units and height is 3 units, the AspectRatio will be 5/3 or 1.66

On the implementation side, I don't think you should never multiply input coordinates by any number greater than 1.0, because it will cause odd rounding / aliasing issues, so I think the logic should be something like this:

if (AspectRatio > 1.0) {
  y /= AspectRatio;
} else {
  x *= AspectRatio;
}

Although I'm not familiar enough with X input semantics to know if this will always be the correct thing to do.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

On Wed, Dec 10, 2008 at 03:47:17PM -0800, <email address hidden> wrote:
> --- Comment #8 from Steve Lacy <email address hidden> 2008-12-10 15:47:16 PST ---
> If you do rename it "AspectRatio" I think you should use the convention of X/Y
> as is used in the TV & movie industry.

agreed.

> On the implementation side, I don't think you should never multiply input
> coordinates by any number greater than 1.0, because it will cause odd rounding
> / aliasing issues, so I think the logic should be something like this:
>
> if (AspectRatio > 1.0) {
> y /= AspectRatio;
> } else {
> x *= AspectRatio;
> }

agreed.

> Although I'm not familiar enough with X input semantics to know if this will
> always be the correct thing to do.

this effect is purely within the driver, so there is no semantics to worry
about other than "make it not suck".

Revision history for this message
scoozer (scoozer2000) wrote :

Hello,

I link to my bug report: https://bugs.launchpad.net/ubuntu/+bug/308889

The problem is basically that the vertikal movement sensitivity is much higher than the horizontal one. The results are waves when you draw a line from left to right (and vice versa). You can easily check this by drawing a circle on touchpad. The curser should do a egg-like form.

I dont know how to fix this. But you can see on my Bug report what Ive done, try to minimize the problem. Actually i think the main problem can only solved by a new kernel or something.

Revision history for this message
In , Slacy (slacy) wrote :

I've been working with another member of the xorg mailing list, and have found that the required issue for most of these trackpads is a missing call to SYN_QUE_RESOLUTION.

The description of the query can be found in http://www.synaptics.com/sites/default/files/ACF126.pdf sections 2.4.3 and 3.5.1.

The query $08 returns the X and Y resolutions in pixels per MM, as a single byte.

The other list member has a patch that he's tried and says that it returns the proper (non-square) resolution values for his touchpad. I'm going to point him at this bug and maybe he can chime in.

I looked at the code for both the Synaptics and evdev kernel drivers, and found that it was a significant amount of work to add X and Y resolutions (or aspect ratio correction based on the SYN_QUE_RESOLUTION values) and decided that this was beyond my ability to craft up a patch. Ideally, this would be patched into evdev somehow, or exported via the synaptics driver in the shared memory segment. (Both would be non-compatible changes as far as I can tell).

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

> I looked at the code for both the Synaptics and evdev kernel drivers, and found
> that it was a significant amount of work to add X and Y resolutions (or aspect
> ratio correction based on the SYN_QUE_RESOLUTION values) and decided that this
> was beyond my ability to craft up a patch. Ideally, this would be patched into
> evdev somehow, or exported via the synaptics driver in the shared memory
> segment. (Both would be non-compatible changes as far as I can tell).

If I understand you correctly, we need to get the kernel driver to issue the
call first. Then it can export it to the X driver, which can do stuff with
this information. Without an updated kernel patch, this one is a no-go.

Nonetheless. One possibility is to add the information is through explicit
configuration options instead of autodetecting it. If you want to prepare a
patch towards this, please feel free to do so.

Revision history for this message
In , Slacy (slacy) wrote :

Yes, I think it would be ideal to have the kernel query & export the resolution values as a long term solution.

Another possibility is to have the kernel do the resolution query and adjustment for the aspect ratio before passing back any of its values. Although I'm fairly certain I could get this working on my non-square device, I don't have access to enough other trackpads to know if that level of change would be compatible with the wide array of supported devices. In other words, I'd be afraid of breaking input on some class of synaptics pads.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

When Steve pointed out SYN_QUE_RESOLUTION I tested it in two laptops. Wide touchpad returned values infoXupmm=74 infoYupmm=160 while a normal touchpad returned 81 and 95.

I didn't find any obvious mechanism either for passing this kind of information back to user space. If there isn't one it would make things quite simple as the only place compensation can be done would be the kernel. I posted a question about this to linux-input list recently http://thread.gmane.org/gmane.linux.kernel.input/6243.

I did a simple patch for synaptics kernel driver that scales the absolute coordinates before reporting them. I suppose it's a bit out of topic so I do not attach it here but just give a link instead for the ones who like to experiment http://pastebin.com/f3b5bf09b

Revision history for this message
campamax (massimo-campanini) wrote :

Can someone with adequate knowledge try to explain why this issue does not appear in OpenSuSE 11.1?
Thanks

Bryce Harrington (bryce)
description: updated
Revision history for this message
Andy Clayton (q3aiml) wrote :

Looks like this is getting covered upstream:

https://bugs.freedesktop.org/show_bug.cgi?id=18351

There is a test patch mentioned that modifies the synaptic kernel driver to scale its output correctly, but it seems that may not be what they wind up doing in the end. Maybe I'll try to package it up for testing/workaround, though. Or could we apply it and drop the patch once they include it? Regardless, it would be nice to not have to wait for Jaunty+1 for this to be fixed.

Revision history for this message
In , A2k0001 (a2k0001) wrote :

Created an attachment (id=22280)
Vertical and horizontal multiplier options

Revision history for this message
In , A2k0001 (a2k0001) wrote :

(From update of attachment 22280)
Useful to set size of touchpad in percent (like VertMultiplier=60 means that height or touchpad is 60% from width)

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Some time ago I linked here a simple version of a patch for Synaptics driver in the kernel. It adjusts the coordinates according to the resolution reported by the touchpad and should make it unnecessary to expose individual x and y sensitivity variables to users.

I would really like to hear opinions on what would be the preferred approach for you, especially from Xorg devels, since I do not want to try submit the patch to kernel if you are against the idea! :)

In the current version [1] I've adjusted the coordinates and also the minimum and maximum values that are used as basis e.g. for calculating edge scroll limits.

Can you see any problems in this approach?

[1]
preliminary patch for kernel's synaptics driver
http://pastebin.com/f7e8505c

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

Having the resolution provided by the kernel is good for autoconfiguration of
sensitivity. I don't think the kernel should do coordinate adjustment though.
It should be something up to userspace.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

(In reply to comment #17)
> Having the resolution provided by the kernel is good for autoconfiguration of
> sensitivity. I don't think the kernel should do coordinate adjustment though.
> It should be something up to userspace.

Ok, I will not try submitting the patch.

I could try to dig into details on how to provide the resolution from kernel input layer to userspace. However I would appreciate a lot if you can point me into right direction, maybe giving me an example on how it should look from xorg perspective (for example, introduce new ioctl primitive similar to ABS query).

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

Best to ask on linux-input or lkml, or look through the archives.
Henrik Rydberg recently posted patches for multi-touch support, they may serve
as a guide for how to get new features exposed to userland.

Revision history for this message
Paweł (paff) wrote :

Nothink changed in Jaunty (today's update). The same problem witch scalling in synaptic driver.

Revision history for this message
Philip Stewart (sodoku) wrote :

I also have the same problem with daily NBR from today.

A solution is provided here with own ppa:
http://www.linuxonmysamsung.com/showthread.php?tid=14

Changed in xorg-server:
status: Unknown → Confirmed
Revision history for this message
In , Fortunato Ventre (voria) wrote :

Any news about this bug?

I just want to say that I'm using Nathan Hamblen's patch right now and it works nice here. IMHO the VertAdjustmentFactor option is a good idea and it should be merged.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

I promised to take a try at this but didn't until now, sorry.

I still haven't asked the kernel folks how they recommend exporting the new resolution values for automatic configuration but looking at the interface again I think I might be getting quite near with a solution like this http://pastebin.com/f7bc1e633.

On Xorg side I've added two new configurable variables: "VertResolution" and "HorizResolution". The default values are read from the (patched!) kernel. If not running patched kernel the variables are set to 1, making the scaling practically a no-op. I'll attach an experimental patch here.

Could this be something people feel worth of pushing forward?

I should note the obvious about theae patches: I'm not very familiar with either Xorg or kernel and the code is almost not tested at all.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=25322)
Experimental patch with autoconfiguration by reading resolution from (patched) kernel, see comment #21

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

basic approach is correct, a few nitpicks on a quick glance:
- don't calculate scale for each event, do it once and store it somewhere (and recalculate when the property changes)
- ABS_RX/RY is AFAIK for "rotary x/y", not for resolution
- document what unit is used for the resolution (units/mm, units/inch, bananas/tree?)

Before we can put that into the driver, please make sure that there's at least a plan to go forward with the kernel support.

Tero, I'm assigning this bug to you for now, please reassign back to me when the patch is done from your point of view (I'm still on the CC list, so I'll see further comments)>

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

(In reply to comment #23)
> Before we can put that into the driver, please make sure that there's at least
> a plan to go forward with the kernel support.

Just reporting that I still haven't had success to get the kernel patch forward:
http://www.spinics.net/lists/linux-input/index.html#03327
The single maintainer of the input subsystem seems to be rather busy and the queue of people waiting for review of their stuff looks overwhelming :-(

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=27390)
patch with autoconfiguration by reading resolution from kernel (2.6.31 required)

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

(In reply to comment #25)
> Created an attachment (id=27390) [details]
> patch with autoconfiguration by reading resolution from kernel (2.6.31
> required)
>

Just to clarify, the patch works also with older kernels but obviously without autoconfiguration support. HorizResolution and VertResolution can be set manually to override default values.

The scaling multipliers are now calculated only when properties change like suggested but the solution is not very elegant. All functions in synaptics.c were declared as static so I didn't want to add public function that properties.c could call when the values change.

Please comment if there's something else I should change!

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

thanks again for the patch! a few comments:
- the man page should state the default value/behaviour if the resolution is unset.
- you allow for negative resolutions in the property handler. is this intended? If not, s/INT32/CARD32/.
- wouldn't it be best to calculate the coefficient when the property is changed (or at startup) instead of the checks in ScaleCoordinate? I'm fine with having two functions, ScaleCoordinate and CalculateRation (or somesuch).
- InitValuatorAxisStruct takes a resolution parameter (in units/m, not mm!), please fill this in appropriately.

The patch sets the aspect ration based on the resolution (which makes sense). I'm wondering if there should be a way of setting the aspect ratio independent of the resolution?

Changed in xorg-server:
status: Confirmed → In Progress
Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=27525)
Add configurable x/y resolution to fix sensitivity on wide touchpads

Thanks for the comments Peter!

> the man page should state the default value/behaviour if the resolution is
> unset.

Added some text about default values.

> you allow for negative resolutions in the property handler. is this intended?
> If not, s/INT32/CARD32/.

It was not the intention. I replaced the type but it still allows negative values since there's no actual checks in the set property handler...

> wouldn't it be best to calculate the coefficient when the property is
> changed (or at startup) instead of the checks in ScaleCoordinate?
> I'm fine with having two functions, ScaleCoordinate and CalculateRation

I agree, added CalculateScalingCoeffs().

I'm not very clear on the coding rules. Should I add new header file synaptics.h for prototype of this function? As far as I can see it's the first function in synaptics.c that is called outside file scope. For now I just declared it in both synaptics.c and properties.c.

> InitValuatorAxisStruct takes a resolution parameter (in units/m, not mm!)

I filled the min and max parameters with the resolution * 1000.

How are these values used? Will somebody do calculations according to resolution and/or coordinates after the x/y values leave synaptics driver? Scaling could potentially cause unexpected behavior somewhere. I had to be careful to scale at the correct place in the code in order not to break e.g. edge detection which depends on unscaled coordinates (I added comment about this to the code too).

> The patch sets the aspect ration based on the resolution (which makes sense).
> I'm wondering if there should be a way of setting the aspect ratio
> independent of the resolution?

To do that wouldn't we need to define "ideal touchpad" that has equal resolution on both axes and use the aspect ratio of that as a reference for all calculations. I don't know if this is so easy to do... My old laptop has touchpad with physical aspect ratio of 7:5 and VertResolution=81 and HorizResolution=92 which I never noticed as they are nearly equal. My current one has 2:1 and VertResolution=74 and HorizResolution=160 which is impossible to use without scaling.

I wonder if it's worth of adding configuration option for setting aspect ratio. Personally I think user should never need to be bothered with details like x/y sensitivity anyway. It should be always auto-configured.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

(In reply to comment #28)
> > you allow for negative resolutions in the property handler. is this intended?
> > If not, s/INT32/CARD32/.
>
> It was not the intention. I replaced the type but it still allows negative
> values since there's no actual checks in the set property handler...

CARD32 is unsigned int, so if you update the
SynapticsParameters to take unsigned ints as well anything you send in will be automatically positive.

Please add the unsigned comment to the synaptics-property.h as well.

While reading your other comment about the aspect ration setting a thought struck me though: is there even a reason to make the resolutions property writable? it's these properties that you'd have little reason to actually change at runtime. If you ever have to adjust it you have a 'broken' touchpad and then you need to add it to the xorg.conf anyway.

> I'm not very clear on the coding rules. Should I add new header file
> synaptics.h for prototype of this function? As far as I can see it's the first
> function in synaptics.c that is called outside file scope. For now I just
> declared it in both synaptics.c and properties.c.

synaptics.h is the shared header for synclient and syndaemon as well. synapticsstr.h is the better choice here.

> > InitValuatorAxisStruct takes a resolution parameter (in units/m, not mm!)
>
> I filled the min and max parameters with the resolution * 1000.

I think it's better to use a default resolution value of 0 here. The server doesn't actually do anything with it other than report it to clients when asked. I didn't find any convention but a default resolution of 0 is IMO better than 1 (which might be a valid value).

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=27542)
Add configurable x/y resolution to fix sensitivity on wide touchpads

> CARD32 is unsigned int, so if you update the
> SynapticsParameters to take unsigned ints as well anything you send in will be
> automatically positive.
>
> Please add the unsigned comment to the synaptics-property.h as well.

Ok, done this.

> While reading your other comment about the aspect ration setting a thought
> struck me though: is there even a reason to make the resolutions property
> writable? it's these properties that you'd have little reason to actually
> change at runtime. If you ever have to adjust it you have a 'broken' touchpad
> and then you need to add it to the xorg.conf anyway.

I guess the value will be set only when running on earlier kernels. Don't know if there are touchpads that report invalid resolution... So do you mean the value could still be writable but through xorg.conf and not synclient? Would it then be removed from properties completely or just from SetProperty()? Will that be confusing for user if a configurable option is missing or read only in synclient's perspective but writable on xorg.conf?

Basically my reason for adding it as a property was only that I thought properties should map one to one with configurable options. They also seemed to be writable in general.

I myself have stopped modifying xorg.conf completely since touchpad is nowadays the only thing requiring manual configuration. So I run synclient at desktop session startup. In a way it's convenient when everything related to touchpad is at one place.

> synaptics.h is the shared header for synclient and syndaemon as well.
> synapticsstr.h is the better choice here.

Moved the function prototype to synapticsstr.h.

> I think it's better to use a default resolution value of 0 here.

Ok, now it should be reported as 0 if we do not know the resolution.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Just to add...
Basically I would be ready to rely on auto-configuration only and remove the configurable property/option since it is just a fallback anyway. I hope that when we have more test results and see that this works for all laptops, people running latest xorg will also be running 2.6.31. There's no need for fallbacks then.

Revision history for this message
In , Max Berger (max-berger) wrote :

my 2 cts:

Please do not remove the manual configuration! While this feature is now available in the Linux kernel, it will not be available in other free *nixes, such as the *bsds for a while.

Thank you all for the contributions! I am looking forward to being able to finally use my touchpad in Linux!

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

> I guess the value will be set only when running on earlier kernels. Don't know
> if there are touchpads that report invalid resolution... So do you mean the
> value could still be writable but through xorg.conf and not synclient? Would
> it then be removed from properties completely or just from SetProperty()? Will
> that be confusing for user if a configurable option is missing or read only in
> synclient's perspective but writable on xorg.conf?

The value would be available as a read-only property. the 'Synaptics
Capabilities' property is one example for a write-only only property. It
serves a similar purpose - inform clients about the hardware capabilities.
(There's little point changing the flag that specifies whether the hardware
can do multi-touch)

the resolution property seems similar, it makes little sense to modify the
resolution at run-time. Note that this doesn't rule out manual
configuration, just run-time modification.

implementation-wise: just return BadValue from the SetProperty handler.

> I myself have stopped modifying xorg.conf completely since touchpad is nowadays
> the only thing requiring manual configuration. So I run synclient at desktop
> session startup. In a way it's convenient when everything related to touchpad
> is at one place.

of course, this makes sense for user-specific settings (tapping, scroll
method, etc.) but not really for hardware properties IMO.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=27608)
Add configurable x/y resolution to fix sensitivity on wide touchpads

> the resolution property seems similar, it makes little sense to modify the
> resolution at run-time. Note that this doesn't rule out manual
> configuration, just run-time modification.
>
> implementation-wise: just return BadValue from the SetProperty handler.

I've updated the patch. Since HorizResolution and VertResolution are now read-only I removed them from synclient too but I left them in the manual page.
Please comment if there's something I could sill make better.

Actually I'm not up to date if input device parameters can still be set in xorg.conf but at least in Xorg version shipped with Ubuntu 9.04 I can set HorizResolution and VertResolution values now using fdi file.

Revision history for this message
In , Tero Saarni (tsaarni) wrote :

Created an attachment (id=27609)
Add configurable x/y resolution to fix sensitivity on wide touchpads

Made the patch apply to current head. Removed the prototype for CalculateScalingCoeffs() from synapticsstr.h and changed it back to static.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

pushed as 0c3fbceb1b2a18f92166fe75c44b5aaada693c4b. thanks for your work.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

(In reply to comment #34)
> Actually I'm not up to date if input device parameters can still be set in
> xorg.conf but at least in Xorg version shipped with Ubuntu 9.04 I can set
> HorizResolution and VertResolution values now using fdi file.

from the driver's POV, options set in the fdi are the same as those set in the xorg.conf

Changed in xorg-server:
status: In Progress → Fix Released
Bryce Harrington (bryce)
tags: added: hardy
Changed in xorg-server:
importance: Unknown → Wishlist
Revision history for this message
Bryce Harrington (bryce) wrote :

Looks like the patch for this got upstream in 2009, so presumably this issue is long since fixed. If not, please reopen the bug report with elaboration on where things are at.

Changed in xserver-xorg-input-synaptics (Ubuntu):
status: Confirmed → Fix Released
Changed in xorg-server:
importance: Wishlist → Unknown
Changed in xorg-server:
importance: Unknown → Wishlist
Revision history for this message
gpothier (gpothier) wrote :

In 11.04 the touchpad aspect ratio is messed up on my Dell Vostro V13. It was fine on 10.10. In my case the horizontal sensitivity is much higher than the vertical sensitivity.

Revision history for this message
gpothier (gpothier) wrote :

It seems the fix caused a regression on some trackpads. The trackpad on my Dell Vostro V13 is basically unusable because horizontal sensitivity is about 3 times higher than horizontal sensitivity (the opposite of the OP's situation).
It is like that on 11.04 and current 11.10 alpha.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.