Bug 96710

Summary: Middle click area is too large / inconsistent with physical marks (Dell XPS 13 9350)
Product: Wayland Reporter: Andy Lutomirski <luto>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: 1.3.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: A click that libinput thought was a middle-click
0001-touchpad-reduce-middle-button-size-on-Dell-touchpads.patch

Description Andy Lutomirski 2016-06-28 17:27:17 UTC
Created attachment 124763 [details]
A click that libinput thought was a middle-click

Since upgrading to Fedora 24, I've been middle-clicking my accident on a regular basis on my Dell XPS 13 9350.

This laptop has a very clearly drawn division between the left-click area and the right-click area.  Nonetheless, I can click well to the left of the line and still trigger a middle-click.

Please either disable the middle-click area on touchpads that have this type of line or make it so that I actually need to place my finger on the line to trigger middle-click.

I've attached a picture of myself allegedly middle-clicking.

If this is an issue with a hardware database and not with libinput itself, my apologies -- if you give me a reference to what needs to change, I'll change it and submit a patch.
Comment 1 Peter Hutterer 2016-06-29 08:02:02 UTC
yeah, that's definitely too big, especially given that there's a line. I'll see what we can do here.

while I have you here, can you run the touchpad-edge-detector tool please, may be that the dimensions of the touchpad are out of whack.
Comment 2 Andy Lutomirski 2016-06-29 14:55:36 UTC
Looks okay to me:

$ sudo touchpad-edge-detector /dev/input/event11
Touchpad DLL0704:01 06CB:76AE Touchpad on /dev/input/event11
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [0..1216], y [0..680]
Touchpad sends:	x [0..1216], y [0..680] -|||
^C

Touchpad size as listed by the kernel: 101x56mm
Calculate resolution as:
	x axis: 1216/<width in mm>
	y axis: 680/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:DLL0704:01 06CB:76AE Touchpad:dmi:bvnDellInc.:bvr1.4.3:bd06/02/2016:svnDellInc.:pnXPS139350:pvr:rvnDellInc.:rn07TYC2:rvrA00:cvnDellInc.:ct9:cvr:*
 EVDEV_ABS_00=0:1216:<x resolution>
 EVDEV_ABS_01=0:680:<y resolution>
 EVDEV_ABS_35=0:1216:<x resolution>
 EVDEV_ABS_36=0:680:<y resolution>


I got out a caliper, and I measure 105x59 mm, which is reasonably close to what the kernel thinks, too.
Comment 3 Peter Hutterer 2016-06-30 01:12:03 UTC
Created attachment 124790 [details] [review]
0001-touchpad-reduce-middle-button-size-on-Dell-touchpads.patch

Try this one please. I don't have a Dell here so I can't check that the hwdb applies, consider that bit untested. 

For rebuilding the hwdb after the patch applies see:
https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_hwdb_changes
Comment 4 Peter Hutterer 2016-07-12 05:33:58 UTC
ping?
Comment 5 Andy Lutomirski 2016-07-12 18:10:55 UTC
(In reply to Peter Hutterer from comment #3)
> Created attachment 124790 [details] [review] [review]
> 0001-touchpad-reduce-middle-button-size-on-Dell-touchpads.patch
> 
> Try this one please. I don't have a Dell here so I can't check that the hwdb
> applies, consider that bit untested. 
> 
> For rebuilding the hwdb after the patch applies see:
> https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_hwdb_changes

Seems to work well, and I have LIBINPUT_MODEL_DELL_TOUCHPAD=1.

Sorry for being slow.  I discovered that this patch doesn't apply to 1.3.3, and then I was out of town.
Comment 7 Peter Hutterer 2016-07-14 22:46:52 UTC
commit caf14fab16b2919b657087c80133cf357be84b09
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 30 10:11:17 2016 +1000

    touchpad: reduce middle button size on Dell touchpads to 10mm

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.