Opened 10 years ago

Last modified 9 months ago

#5179 assigned enhancement

Touchpad buttons not working correctly due to missing ClickPad support

Reported by: Lynton Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Input/PS2/Mouse Version: R1/Development
Keywords: mouse Cc: romain.picard@…
Blocked By: Blocking: #12403, #14955, #14956
Has a Patch: no Platform: x86

Description (last modified by kallisti5)

Synaptics is now making touchpads that have one "physical" button which is the whole pad. To determine if a click is on the left or right side, the buttons are part of the touchpad and the synaptics driver detects where the finger is placed (this works due to multi-touch support)

Known laptop models with this clickpad:

  • Dell Inspiron Mini 10v
  • Asus UX31A
  • Asus UX32A
  • HP series 4500 ProBooks
  • ThinkPad X220
  • ThinkPad X1

By default, the whole pad is detected as the left mouse button.. so basic functionality exsists.

More Information: https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_TouchPads_.28aka_ClickPads.29

Attachments (2)

Dell Mini 10v Devices.txt (2.6 KB ) - added by Lynton 10 years ago.
Output from listdev if its of any use
listusb.txt (17.7 KB ) - added by Lynton 10 years ago.

Download all attachments as: .zip

Change History (26)

by Lynton, 10 years ago

Attachment: Dell Mini 10v Devices.txt added

Output from listdev if its of any use

comment:1 by mmlr, 10 years ago

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

by Lynton, 10 years ago

Attachment: listusb.txt added

in reply to:  1 ; comment:2 by Lynton, 10 years ago

Replying to mmlr:

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

OK please find the output from listusb -v attached. I don't see the touchpad in the list to be honest.

Interestingly enough the problem gets worse to debug because the buttons have worked intermittently in the last few minutes. Its almost like its dependent on where you have had your fingers previously on the touchpad.

Quite hard to explain but am happy to provide more info if needed.

comment:3 by mmlr, 10 years ago

Component: Drivers/MouseDrivers/Mouse/PS2
Owner: changed from nobody to marcusoverhagen

Yes, it's not a USB touchpad then.

comment:4 by mmlr, 10 years ago

Owner: changed from marcusoverhagen to czeidler

Reassigning to Clemens as he implemented the synaptics support.

in reply to:  2 comment:5 by Lynton, 10 years ago

Replying to Lynton:

Replying to mmlr:

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

OK please find the output from listusb -v attached. I don't see the touchpad in the list to be honest.

Interestingly enough the problem gets worse to debug because the buttons have worked intermittently in the last few minutes. Its almost like its dependent on where you have had your fingers previously on the touchpad.

The mechanical left/right buttons are located beneath the active area on the touchpad. I have just noticed that if I click the buttons by using the extreme left right corners of the touchpad the buttons do actually work but one has to be very precise which is awkward to say the least. I seem to recall reading somewhee that the Windows/Linux drivers use some sort of filter to get around this issue?

comment:6 by czeidler, 10 years ago

Hi Lynton,

I think its the following problem: What I can see from the pics at google the buttons are integrated in the touch area. Correct? I had the problem that the touch area size listed in the synaptics specs where to small on my touchpad so I extend them a little bit so they reach over the buttons on your machine now. The problem is that you click a button and the button flag is set by the touchpad. But the driver think it is a movement on the touch area and remove the flag again...

On linux or windows could you use the button area also to move the mouse? (by start the movement somewhere else)

Hope to look into it next week...

Clemens

Will look into it next year...

comment:7 by Lynton, 10 years ago

Hi Clemens, You are correct about the buttons being located in the touch area. The buttons are mechanical devices located beneath the touchpad but it seems the area where the buttons are located is also part of the active touchpad area. I have never tried Windows on the machine but thinking back a little I did have an odd problem with "Linux Mint 7" on the machine where the touchpad behaved strangely. The pointer would jump around all over the screen if I tried to use the button area whilst moving the mouse say to resize a window.

I now run Ubuntu Netbook Remix and that seems to work OK.

I will of course be happy to test any modifications you make to the driver code.

Kind Regards

Lynton

comment:8 by HaikuBot, 8 years ago

I have same touchpad or how it called correctly - clickpad. http://www.synaptics.com/solutions/products/clickpad

Laptop HP Probook 4520s.

comment:9 by czeidler, 8 years ago

Owner: changed from czeidler to siarzhuk
Status: newassigned

I don't have a synaptics touchpad anymore, so I can't even test changes... Siarzhuk are you interested to look into it?

comment:10 by romain, 8 years ago

Some interesting news on this issue: http://www.phoronix.com/scan.php?page=news_item&px=MTA2NTQ

and the xorg patch available here: http://lists.x.org/archives/xorg-devel/2012-March/029609.html

Since I have the same issue on my hp probook 4320, I will try to look at it I if have some time within the next weeks.

comment:11 by romain, 8 years ago

Cc: romain.picard@… added

comment:12 by kallisti5, 7 years ago

Component: Drivers/Mouse/PS2Drivers/Mouse/USB
Description: modified (diff)
Milestone: R1R1/beta1
Summary: Touchpad buttons not working correctly on Dell Inspiron Mini 10vTouchpad buttons not working correctly due to missing ClickPad support
Type: bugenhancement
Version: R1/alpha1R1/Development

I have an Asus ultrabook that has the same clickpad... adjusting description to be more generic.

comment:13 by kallisti5, 7 years ago

Component: Drivers/Mouse/USBDrivers/Mouse/PS2

comment:14 by richienyhus, 5 years ago

Have there been any improvements in the interim?

Should this still be under beta1 ?

comment:15 by siarzhuk, 5 years ago

Owner: changed from siarzhuk to nobody

For years I was default assignee for this PS2 stuff. Neither fixes nor improvements - I should be fired away. ;-)

comment:16 by pulkomandy, 4 years ago

Milestone: R1/beta1Unscheduled

BeOS didn't support this, not an R1 feature. (and there is apparently not much interest in getting it done anyway, 5 years and not a single patch)

comment:17 by pulkomandy, 3 years ago

Blocking: 12403 added

(In #12403) Ok, in that case it is probably a Synaptics Clickpad. Our driver has some trouble managing the physical buttons on these. I'm closing this as a duplicate of the (old) existing ticket. We may need to dive into Synaptics protocol specs again and see what can be done.

comment:18 by DFergFLA, 3 years ago

oh, wow I guess I maybe shouldn't expect this to be resolved any time soon.

comment:19 by pulkomandy, 3 years ago

Well, I made some investigations yesterday after closing your ticket.

There isn't anything specific for these in the Synaptics touchpad protocol. This means, the touchpad will report both a button click, and a second finger on the touchpad (1 finger doing mouse moves + 1 finger over the "button" area). The touchpad isn't multi-touch, but it can tell when there are more than 1 finger on the pad.

In our driver, all the processing for this is in http://cgit.haiku-os.org/haiku/tree/src/add-ons/kernel/bus_managers/ps2/movement_maker.cpp . This is not hardware-specific, which means we don't need a skilled hardware hacker to work on this. This piece of code takes the events from the touchpad as an input (X and Y position, Z pressure, and "W", which indicates various things including 2 or 3-finger movement, size of the finger, and a few others), and generates events for the input server.

The entry point is the "EventToMovement" method. You can see that in the case of the clickpad, we will never go in _NoTouchToMovement, because when a button is pressed, there is always a finger (the same one) on the pad.

Enabling the #define TRACE_MOVEMENT_MAKER in this file and looking at the syslog will provide some extra information. If someone does that, maybe enabling #define TRACE_PS2 in ps2_common.h would provide also low-level info from the driver itself, which may be useful, or too verbose and prevent proper use of the device at all.

comment:20 by DFergFLA, 3 years ago

That's cool. Maybe we'll get lucky and this won't be so hard to fix. It would really give Haiku a good boost in laptop hardware. Let me know if there is anything else I can get from my system to help.

comment:21 by pulkomandy, 19 months ago

Some support added in https://review.haiku-os.org/#/c/haiku/+/185/ so one can at least left click. This might be enough as supposedly Haiku supports being used with 1-button mouse: long click or ctrl+click should do the same as right click.

However, it would be better to support the right button area in some way.

comment:22 by waddlesplash, 9 months ago

Component: Drivers/Mouse/PS2Drivers/Input/PS2/Mouse

comment:23 by cb88, 9 months ago

Blocking: 14955 added

comment:24 by cb88, 9 months ago

Blocking: 14956 added
Note: See TracTickets for help on using tickets.