Bug 1230441

Summary: c720 trackpad (Cypress APA Trackpad) "hard clicks" are very difficult
Product: [Fedora] Fedora Reporter: Wade Berrier <wberrier>
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: peter.hutterer, wberrier
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libinput-0.17.0-5.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-23 09:09:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1230462    
Bug Blocks:    
Attachments:
Description Flags
evemu-recording of difficult hard click
none
repeated hard clicks
none
0.17-1 libinput
none
0.17-2 libinput
none
ChromeOS hard clicks
none
paint results from scratchbuild
none
paint results from scratchbuild #2
none
chromeos test #2 none

Description Wade Berrier 2015-06-10 22:32:19 UTC
Created attachment 1037447 [details]
evemu-recording of difficult hard click

Description of problem:

The mouse pointer moves a lot when trying to do hard clicks with the trackpad.  This makes it very difficult to click on stuff, because often the pointer has moved away from the target.


Version-Release number of selected component (if applicable): 0.17.0-1.fc22


How reproducible:

Very reproducible.

Steps to Reproduce:
1. Try hard clicking with with touchpad

Actual results:

Pointer moves a lot, often missing the intended target.

Expected results:

I would expect the pointer to stay put while the hard click is taking place.

Additional info:

Attached is a recording of the events

Comment 1 Wade Berrier 2015-06-10 22:33:36 UTC
Created attachment 1037448 [details]
repeated hard clicks

This is a recording of multiple hard clicks, without any intended mouse movement.

Comment 2 Peter Hutterer 2015-06-11 07:00:53 UTC
I think this will be a duplicate of bug 1230462. Can you test this again with the scratch build I provided there? Thanks

Comment 3 Wade Berrier 2015-06-11 17:47:32 UTC
That scratch build improved things tremendously!

I think there's still room for improvement.

See the attached photos.  These were done with a normal paint app.  The dots were "clean" hard clicks, and the lines are "sloppy" hard clicks.  The location of the paint in the picture is roughly where the click was done on the trackpad.

Again, that build really cleaned things up.

Compare the sample from chromeos, which is a combination of "clean" and "sloppy" hard clicks: they are indistinguishable.

(Forgive me for always referencing ChromeOS, but this is a necessity for those with low dexterity, ie: my 5 year old)

Comment 4 Wade Berrier 2015-06-11 17:48:11 UTC
Created attachment 1037792 [details]
0.17-1 libinput

Comment 5 Wade Berrier 2015-06-11 17:48:42 UTC
Created attachment 1037793 [details]
0.17-2 libinput

Comment 6 Wade Berrier 2015-06-11 17:49:16 UTC
Created attachment 1037794 [details]
ChromeOS hard clicks

Comment 7 Peter Hutterer 2015-06-12 06:04:22 UTC
can you be more precise on the remaining problem please? is it that the pointer moves before the click, during the click or after the click?

Comment 8 Peter Hutterer 2015-06-12 07:30:47 UTC
found it, was a simple bug in libinput. scratch build here:
http://koji.fedoraproject.org/koji/taskinfo?taskID=10029272

There's two more changes that I'll need to do here but let me know how you go with this one for now anyway.

Comment 9 Wade Berrier 2015-06-12 13:28:25 UTC
Created attachment 1038068 [details]
paint results from scratchbuild

This does seem to help in different ways over the previous scratch build.

Note in the top row: the clicks were intended to be aligned horizontally.  The resulting click was a "point", but the pointer moved on the way down, just before the click.

Also, the rest of the lines (sloppy clicks), the pointer moved up on the way up.

Comment 10 Peter Hutterer 2015-06-15 01:19:30 UTC
and another one. This should be the proper correct fix now, but tbh I'm not sure it'll change much for you here. The remaining lines are likely a different cause.
http://koji.fedoraproject.org/koji/taskinfo?taskID=10054545

What this build does is require a 5mm movement from the finger after clicking the button before we send motion events again. That avoids erroneous movements (and should help with Bug 1230462 as well).

The remaining issues probably need solving by looking at pressure build-up. The finger pinning only happens on button click, so any movement before the click will still happen. It should help with the movement after the click though.

Comment 11 Peter Hutterer 2015-06-15 01:23:31 UTC
and here's the successful koji build. sorry about that.
http://koji.fedoraproject.org/koji/taskinfo?taskID=10054551

Comment 12 Wade Berrier 2015-06-15 14:22:56 UTC
Created attachment 1039071 [details]
paint results from scratchbuild #2

This has given the best results by far.

"Sloppy" clicks work most of the time.  Sometimes it still happens (~25%?):

a) as shown by the first row of dots that are not lined up vertically: pointer moves before click is done

b) as shown by the lines: pointer moves during the release of the click

But again, much much much much better.

Comment 13 Wade Berrier 2015-06-15 14:48:55 UTC
Created attachment 1039078 [details]
chromeos test #2

BTW, I was able to reproduce each of these "artifacts" on chromeos.  They just don't seem to happen as often (~5-10%?).

Comment 14 Fedora Update System 2015-06-16 03:59:13 UTC
libinput-0.17.0-4.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/libinput-0.17.0-4.fc22

Comment 15 Peter Hutterer 2015-06-16 04:12:43 UTC
(In reply to Wade Berrier from comment #12)
> a) as shown by the first row of dots that are not lined up vertically:
> pointer moves before click is done

yeah, this needs some pressure curve analysis during events to stop this from happening. Not sure yet how to do this.

> b) as shown by the lines: pointer moves during the release of the click

the patch in 0.17.0-4 now has a 3mm threshold before we unpin it after the button release. There isn't much we can do here otherwise though, for those users that use a single finger, click, then continue a larger threshold or continuous finger locking will break the behaviour. sorry

Comment 16 Fedora Update System 2015-06-16 07:54:35 UTC
libinput-0.17.0-5.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/libinput-0.17.0-5.fc22

Comment 17 Wade Berrier 2015-06-16 14:19:12 UTC
(In reply to Peter Hutterer from comment #15)
> (In reply to Wade Berrier from comment #12)
> > a) as shown by the first row of dots that are not lined up vertically:
> > pointer moves before click is done
> 
> yeah, this needs some pressure curve analysis during events to stop this
> from happening. Not sure yet how to do this.
> 
> > b) as shown by the lines: pointer moves during the release of the click
> 
> the patch in 0.17.0-4 now has a 3mm threshold before we unpin it after the
> button release. There isn't much we can do here otherwise though, for those
> users that use a single finger, click, then continue a larger threshold or
> continuous finger locking will break the behaviour. sorry

No worries, this is such a huge improvement, thanks!!

Comment 18 Fedora Update System 2015-06-21 00:36:13 UTC
Package libinput-0.17.0-5.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing libinput-0.17.0-5.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-10372/libinput-0.17.0-5.fc22
then log in and leave karma (feedback).

Comment 19 Fedora Update System 2015-06-23 09:09:32 UTC
libinput-0.17.0-5.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Peter Hutterer 2015-06-23 22:38:55 UTC
just FYI, I'm going to leave this bug as closed and consider it fixed, I think the improvements make it a lot better to use. There are still leftovers (see comment 15) that we'll eventually need to fix but they should be tracked in a separate bug. Feel free to file those but especially for the pressure handling
it is an upstream feature request that will take longer to handle though, so best to file this at bugs.freedesktop.org (Wayland/libinput)

Comment 21 Wade Berrier 2015-06-24 19:58:32 UTC
Sounds good, it's much much much better, thank you!

Upstream bug filed here for leftovers:

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