Bug 100533

Summary: 3 finger swipe detected as pinch
Product: Wayland Reporter: Nicolas Viviani <nickola.viviani>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED DUPLICATE QA Contact:
Severity: enhancement    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Nicolas Viviani 2017-04-02 13:31:35 UTC
It seems that there is no 3 finger swipe gesture feature, at least in the 1.6.3 version of libinput. Maybe it's just a bug but I can't use it and in the manual of libinput it appears that 3 finger is not supported :

Option "ScrollMethod" "string"
              Enables  a  scroll method. Permitted values are none, twofinger,
              edge, button.  Not all devices support all options, if an option
              is  unsupported,  the  default  scroll option for this device is
              used.
Comment 1 Peter Hutterer 2017-04-03 01:11:41 UTC
we've had three-finger swipes for quite a while now, but gestures are disabled on some touchpads that are unreliable. Maybe your touchpad is one of them?
Attach an evemu-record output of a gesture to be sure please, libinput-debug-events --verbose may have some info too.
Comment 2 Nicolas Viviani 2017-04-10 16:48:37 UTC
I have this, I don't know if this means that my touchpad is reliable :
 
# EVEMU 1.3
# Kernel: 4.10.8-200.fc25.x86_64
# DMI: dmi:bvnInsyde:bvrF.11:bd12/09/2016:svnHP:pnHPENVYNotebook13-ab0XX:pvrType1ProductConfigId:rvnHP:rn82B9:rvrKBCVersion03.18:cvnHP:ct10:cvrChassisVersion:
# Input device name: "SynPS/2 Synaptics TouchPad"
# Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 328 (BTN_TOOL_QUINTTAP)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   3437
#       Min     1350
#       Max     5652
#       Fuzz       0
#       Flat       0
#       Resolution 40
#     Event code 1 (ABS_Y)
#       Value   1931
#       Min     1164
#       Max     4758
#       Fuzz       0
#       Flat       0
#       Resolution 69
#     Event code 24 (ABS_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 28 (ABS_TOOL_WIDTH)
#       Value      0
#       Min        0
#       Max       15
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 47 (ABS_MT_SLOT)
#       Value      1
#       Min        0
#       Max        1
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min     1350
#       Max     5652
#       Fuzz       0
#       Flat       0
#       Resolution 40
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min     1164
#       Max     4758
#       Fuzz       0
#       Flat       0
#       Resolution 69
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 58 (ABS_MT_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 2 (INPUT_PROP_BUTTONPAD)
N: SynPS/2 Synaptics TouchPad
I: 0011 0002 0007 01b1
P: 05 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 01 00 00 00 00 00
B: 01 20 e5 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 11 00 80 60 06
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 1350 5652 0 0 40
A: 01 1164 4758 0 0 69
A: 18 0 255 0 0 0
A: 1c 0 15 0 0 0
A: 2f 0 1 0 0 0
A: 35 1350 5652 0 0 40
A: 36 1164 4758 0 0 69
A: 39 0 65535 0 0 0
A: 3a 0 255 0 0 0
Comment 3 Nicolas Viviani 2017-04-10 17:03:25 UTC
I have also this :

-event5   GESTURE_PINCH_BEGIN  +1.74s	3
 event5   GESTURE_PINCH_UPDATE  +1.74s	3  1.04/ 0.00 ( 7.87/ 0.00 unaccelerated)  1.00 @ -0.97
 event5   GESTURE_PINCH_UPDATE  +1.76s	3  1.34/ 0.00 ( 7.87/ 0.00 unaccelerated)  0.99 @ -0.97
 event5   GESTURE_PINCH_UPDATE  +1.78s	3  2.95/ 0.00 (13.78/ 0.00 unaccelerated)  0.99 @ -0.24
 event5   GESTURE_PINCH_UPDATE  +1.80s	3  3.62/ 0.00 (13.78/ 0.00 unaccelerated)  0.99 @ -0.24
 event5   GESTURE_PINCH_UPDATE  +1.82s	3  3.56/ 0.00 (11.81/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.84s	3  3.89/ 0.00 (11.81/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.85s	3  5.65/ 0.00 (15.75/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.88s	3  5.10/ 0.00 (13.78/ 0.00 unaccelerated)  0.99 @ -0.24
 event5   GESTURE_PINCH_UPDATE  +1.89s	3  4.37/ 0.00 (11.81/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.91s	3  4.37/ 0.00 (11.81/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.93s	3  2.91/ 0.00 ( 7.87/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_UPDATE  +1.95s	3  2.19/ 0.00 ( 5.91/ 0.00 unaccelerated)  0.99 @ -0.24
 event5   GESTURE_PINCH_UPDATE  +1.97s	3  1.46/ 0.00 ( 3.94/ 0.00 unaccelerated)  0.99 @  0.00
 event5   GESTURE_PINCH_END  +2.00s	3
 event5   GESTURE_SWIPE_BEGIN  +4.61s	3
 event5   GESTURE_SWIPE_UPDATE  +4.61s	3  0.00/ 3.00 ( 0.00/10.27 unaccelerated)
 event5   GESTURE_SWIPE_UPDATE  +4.63s	3  0.00/ 9.24 ( 0.00/27.39 unaccelerated)
Comment 4 Peter Hutterer 2017-04-18 01:54:12 UTC
right, so the touchpad only supports 2 finger touch positions (max slot is 1, i.e. 2 slots), the third finger can be detected but not placed on the touchpad. This will improve with the RMI4 patches scheduled for the kernel (you may then run into Bug 99830).

For now, what's likely happening here is that the first two fingers detected are vertically too far apart (there's a threshold), so libinput guesses that it's a pinch gesture and then goes with that since it cannot tell where the third finger is. This is fixable, but I probably won't have time for it in the near future, let me know if you want to have a go at this.
Comment 5 Peter Hutterer 2017-05-19 05:15:30 UTC
Marking as duplicate of 99830, no point having multiple bugs open for this.

*** This bug has been marked as a duplicate of bug 99830 ***

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.