Bug 1294022

Summary: 3 finger tap to middle click isn't working
Product: [Fedora] Fedora Reporter: n0000b.n000b
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: n0000b.n000b, peter.hutterer
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libinput-1.1.5-1.fc23 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-01-31 22:01:46 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:
Attachments:
Description Flags
evemu-record
none
dmesg
none
xinput list-props
none
pic of touchpad none

Description n0000b.n000b 2015-12-24 05:17:04 UTC
Created attachment 1109132 [details]
evemu-record

Description of problem:


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. tap with 3 fingers to open link in web browser
2.
3.

Actual results:
new tab doesn't open

Expected results:
link open in new tab

Additional info:

Here is the uoutput of : $ udevadm info --query=property --name=/dev/input/event4
DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse
DEVNAME=/dev/input/event4
DEVPATH=/devices/platform/i8042/serio1/input/input5/event4
ID_INPUT=1
ID_INPUT_HEIGHT_MM=36
ID_INPUT_TOUCHPAD=1
ID_INPUT_WIDTH_MM=80
ID_PATH=platform-i8042-serio-1
ID_PATH_TAG=platform-i8042-serio-1
ID_SERIAL=noserial
LIBINPUT_ATTR_RESOLUTION_HINT=31x31
LIBINPUT_DEVICE_GROUP=11/2/e/0:isa0060/serio1
LIBINPUT_MODEL_ELANTECH_TOUCHPAD=1
MAJOR=13
MINOR=68
SUBSYSTEM=input
USEC_INITIALIZED=16737840

Also 'ID_INPUT_WIDTH_MM=' and 'ID_INPUT_HEIGHT_MM=' have some correlation with the actual size? because the touchpad is aprox 89 mm width and 45 mm height with rounded corners.

Comment 1 n0000b.n000b 2015-12-24 05:17:36 UTC
Created attachment 1109133 [details]
dmesg

Comment 2 n0000b.n000b 2015-12-24 05:18:07 UTC
Created attachment 1109134 [details]
xinput list-props

Comment 3 n0000b.n000b 2015-12-24 05:36:38 UTC
I forgot to mention that my touchpad is an elantech

Comment 4 Peter Hutterer 2016-01-13 05:36:58 UTC
sounds like bug 1275460, is that correct?

Comment 5 n0000b.n000b 2016-01-22 19:15:47 UTC
(In reply to Peter Hutterer from comment #4)
> sounds like bug 1275460, is that correct?

it indeed look similar, but there is a difference in the 'ID_INPUT_WIDTH_MM=' and 'ID_INPUT_HEIGHT_MM=' values (where are this values fetched?), so I guess it can be closed.

Comment 6 n0000b.n000b 2016-01-22 19:18:37 UTC
also I forgot to mention that I lost the 3 finger tap after removing the 'xorg-x11-drv-synaptics' package from fedora.

Comment 7 Peter Hutterer 2016-01-24 22:07:34 UTC
(In reply to n0000b.n000b from comment #5)
> (In reply to Peter Hutterer from comment #4)
> > sounds like bug 1275460, is that correct?
> 
> it indeed look similar, but there is a difference in the
> 'ID_INPUT_WIDTH_MM=' and 'ID_INPUT_HEIGHT_MM=' values (where are this values
> fetched?), so I guess it can be closed.

that comes from the device, it announces an x/y axis range and a resolution, the with/height is calculated from that. If those values are wrong, please run the touchpad-edge-detector tool and attach the output here.

(In reply to n0000b.n000b from comment #6)
> also I forgot to mention that I lost the 3 finger tap after removing the
> 'xorg-x11-drv-synaptics' package from fedora.

yeah, that's "expected". synaptics doesn't handle proper multitouch, libinput does. your touchpad (and other semi-mt ones) are not reliable for true multitouch, they send garbage coordinates. so doing the right thing actually makes things worse in this case. the patch I have pending will fix this though.

Comment 8 n0000b.n000b 2016-01-29 15:27:40 UTC
Created attachment 1119452 [details]
pic of touchpad

here is the output of touchpad-edge-detector:

Touchpad ETPS/2 Elantech Touchpad on /dev/input/event4
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [0..2480], y [0..1116]
Touchpad sends:	x [0..2480], y [0..1116] |^C/-

Touchpad size as listed by the kernel: 80x36mm
Calculate resolution as:
	x axis: 2480/<width in mm>
	y axis: 1116/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:ETPS/2 Elantech Touchpad:dmi:bvnAmericanMegatrendsInc.:bvr04PW.ME99.20110908.SKK:bd09/08/2011:svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/305V5A:pvr04PW:rvnSAMSUNGELECTRONICSCO.,LTD.:rn305V4A/305V4A:rvr04PW:cvnSAMSUNGELECTRONICSCO.,LTD.:ct9:cvrN/A:*
 EVDEV_ABS_00=0:2480:<x resolution>
 EVDEV_ABS_01=0:1116:<y resolution>
 EVDEV_ABS_35=0:2480:<x resolution>
 EVDEV_ABS_36=0:1116:<y resolution>

attached is some a pic of the touchpad with some rough measurements (I think this is a non-issue, since doesn't seem to affect the experience).

Also I tested the kernel patch from https://bugs.freedesktop.org/show_bug.cgi?id=93583 and can confirm that 3 finger tap to middle click is working with libinput from testing (1.1.5-1.fc23).

Comment 9 Peter Hutterer 2016-01-31 22:01:46 UTC
sorry, forgot to add this bug number in the update. For reference:
https://bodhi.fedoraproject.org/updates/FEDORA-2016-78d0ff2bc4

The size mismatch, ca 10mm in both directions, has some effect on pointer movement and other things. Try this scratch build please:
http://koji.fedoraproject.org/koji/taskinfo?taskID=12764067

You should see the touchpad size match the physical measurements now once you installed and rebooted.

Comment 10 n0000b.n000b 2016-02-01 00:22:54 UTC
this is now the output of touchpad-edge-detector

Touchpad ETPS/2 Elantech Touchpad on /dev/input/event4
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [0..2480], y [0..1116]
Touchpad sends:	x [0..2480], y [0..1116] /^C

Touchpad size as listed by the kernel: 88x46mm
Calculate resolution as:
	x axis: 2480/<width in mm>
	y axis: 1116/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:ETPS/2 Elantech Touchpad:dmi:bvnAmericanMegatrendsInc.:bvr04PW.ME99.20110908.SKK:bd09/08/2011:svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/305V5A:pvr04PW:rvnSAMSUNGELECTRONICSCO.,LTD.:rn305V4A/305V4A:rvr04PW:cvnSAMSUNGELECTRONICSCO.,LTD.:ct9:cvrN/A:*
 EVDEV_ABS_00=0:2480:<x resolution>
 EVDEV_ABS_01=0:1116:<y resolution>
 EVDEV_ABS_35=0:2480:<x resolution>
 EVDEV_ABS_36=0:1116:<y resolution>

And now the touchpad feel more responsive to the two and three finger touches.
Thanks.

(As I said before the size is more like 89 x 45 mm)

Comment 11 Peter Hutterer 2016-02-01 02:50:14 UTC
one mm over or under doesn't matter and it's hard to address anyway - the resolution is an integer number. in your case we have the choice of 27 units/mm -> 91mm width or 28 units/mm -> 88mm width. But one extra mm doesn't matter and is generally lost in the statistical noise. Thanks for testing, I'll get this into systemd upstream.