Bug 87197 - libinput does not filter proximity events
Summary: libinput does not filter proximity events
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-12-10 16:56 UTC by Alberto Ruiz
Modified: 2015-01-19 10:29 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
evemu-record: Single finger down, second hovering (101.30 KB, text/plain)
2014-12-11 10:49 UTC, Alberto Ruiz
Details
evemu-record: Two fingers down, third hovering (130.11 KB, text/plain)
2014-12-11 10:49 UTC, Alberto Ruiz
Details
evemu-record: Just two fingers down (50.38 KB, text/plain)
2014-12-11 10:50 UTC, Alberto Ruiz
Details

Description Alberto Ruiz 2014-12-10 16:56:28 UTC
Using GNOME-Shell in Fedora 21 I've noticed that my trackpad wiggled a bit and by observing when it did so I realized that the touchpad was detecting my finger even before it touched the surface.

Below is a log of the events recorded in the touchpad without touching it a single time just approaching the finger.

[500][aruiz@kerrigan ~]$ sudo evemu-record 
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Sleep Button
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	SynPS/2 Synaptics TouchPad
/dev/input/event5:	Video Bus
/dev/input/event6:	TPPS/2 IBM TrackPoint
/dev/input/event7:	ThinkPad Extra Buttons
/dev/input/event8:	HDA Intel PCH Mic
/dev/input/event9:	HDA Intel PCH Dock Mic
/dev/input/event10:	HDA Intel PCH Headphone
/dev/input/event11:	HDA Intel PCH Dock Headphone
/dev/input/event12:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event13:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event15:	Integrated Camera
Select the device event number [0-15]: 4
# EVEMU 1.2
# 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 273 (BTN_RIGHT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   2253
#       Min     1472
#       Max     5470
#       Fuzz       0
#       Flat       0
#       Resolution 60
#     Event code 1 (ABS_Y)
#       Value   2611
#       Min     1408
#       Max     4498
#       Fuzz       0
#       Flat       0
#       Resolution 85
#     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      0
#       Min        0
#       Max        1
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min     1472
#       Max     5470
#       Fuzz       0
#       Flat       0
#       Resolution 60
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min     1408
#       Max     4498
#       Fuzz       0
#       Flat       0
#       Resolution 85
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 3 (INPUT_PROP_SEMI_MT)
N: SynPS/2 Synaptics TouchPad
I: 0011 0002 0007 01b1
P: 09 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 03 00 00 00 00 00
B: 01 20 64 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 02
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 1472 5470 0 0 60
A: 01 1408 4498 0 0 85
A: 18 0 255 0 0 0
A: 1c 0 15 0 0 0
A: 2f 0 1 0 0 0
A: 35 1472 5470 0 0 60
A: 36 1408 4498 0 0 85
A: 39 0 65535 0 0 0
################################
#      Waiting for events      #
################################
E: 0.000000 0003 0039 30939	# EV_ABS / ABS_MT_TRACKING_ID   30939
E: 0.000000 0003 0035 4423	# EV_ABS / ABS_MT_POSITION_X    4423
E: 0.000000 0003 0036 1972	# EV_ABS / ABS_MT_POSITION_Y    1972
E: 0.000000 0003 0000 4423	# EV_ABS / ABS_X                4423
E: 0.000000 0003 0001 1972	# EV_ABS / ABS_Y                1972
E: 0.000000 0003 0018 0009	# EV_ABS / ABS_PRESSURE         9
E: 0.000000 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.000000 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 0.000000 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.012326 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 0.012326 0003 0036 1970	# EV_ABS / ABS_MT_POSITION_Y    1970
E: 0.012326 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 0.012326 0003 0001 1970	# EV_ABS / ABS_Y                1970
E: 0.012326 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 0.012326 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.024655 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 0.024655 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 0.024655 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.035978 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.035978 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.048322 0003 0035 4427	# EV_ABS / ABS_MT_POSITION_X    4427
E: 0.048322 0003 0036 1980	# EV_ABS / ABS_MT_POSITION_Y    1980
E: 0.048322 0003 0000 4427	# EV_ABS / ABS_X                4427
E: 0.048322 0003 0001 1980	# EV_ABS / ABS_Y                1980
E: 0.048322 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 0.048322 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.072945 0003 0035 4443	# EV_ABS / ABS_MT_POSITION_X    4443
E: 0.072945 0003 0036 1956	# EV_ABS / ABS_MT_POSITION_Y    1956
E: 0.072945 0003 0000 4443	# EV_ABS / ABS_X                4443
E: 0.072945 0003 0001 1956	# EV_ABS / ABS_Y                1956
E: 0.072945 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.072945 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.085237 0003 0035 4442	# EV_ABS / ABS_MT_POSITION_X    4442
E: 0.085237 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 0.085237 0003 0000 4442	# EV_ABS / ABS_X                4442
E: 0.085237 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 0.085237 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.097518 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 0.097518 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.109814 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 0.109814 0003 0036 1970	# EV_ABS / ABS_MT_POSITION_Y    1970
E: 0.109814 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 0.109814 0003 0001 1970	# EV_ABS / ABS_Y                1970
E: 0.109814 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.146700 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.146700 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.159001 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 0.159001 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 0.159001 0003 001c 0007	# EV_ABS / ABS_TOOL_WIDTH       7
E: 0.159001 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.171293 0003 0035 4427	# EV_ABS / ABS_MT_POSITION_X    4427
E: 0.171293 0003 0036 1996	# EV_ABS / ABS_MT_POSITION_Y    1996
E: 0.171293 0003 0000 4427	# EV_ABS / ABS_X                4427
E: 0.171293 0003 0001 1996	# EV_ABS / ABS_Y                1996
E: 0.171293 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 0.171293 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.183527 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 0.183527 0003 0036 2006	# EV_ABS / ABS_MT_POSITION_Y    2006
E: 0.183527 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 0.183527 0003 0001 2006	# EV_ABS / ABS_Y                2006
E: 0.183527 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.196007 0003 0035 4427	# EV_ABS / ABS_MT_POSITION_X    4427
E: 0.196007 0003 0036 1980	# EV_ABS / ABS_MT_POSITION_Y    1980
E: 0.196007 0003 0000 4427	# EV_ABS / ABS_X                4427
E: 0.196007 0003 0001 1980	# EV_ABS / ABS_Y                1980
E: 0.196007 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.196007 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.208364 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 0.208364 0003 0036 2006	# EV_ABS / ABS_MT_POSITION_Y    2006
E: 0.208364 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 0.208364 0003 0001 2006	# EV_ABS / ABS_Y                2006
E: 0.208364 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.220623 0003 0035 4417	# EV_ABS / ABS_MT_POSITION_X    4417
E: 0.220623 0003 0036 1995	# EV_ABS / ABS_MT_POSITION_Y    1995
E: 0.220623 0003 0000 4417	# EV_ABS / ABS_X                4417
E: 0.220623 0003 0001 1995	# EV_ABS / ABS_Y                1995
E: 0.220623 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.232887 0003 0035 4427	# EV_ABS / ABS_MT_POSITION_X    4427
E: 0.232887 0003 0036 1996	# EV_ABS / ABS_MT_POSITION_Y    1996
E: 0.232887 0003 0000 4427	# EV_ABS / ABS_X                4427
E: 0.232887 0003 0001 1996	# EV_ABS / ABS_Y                1996
E: 0.232887 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.245173 0003 0036 1992	# EV_ABS / ABS_MT_POSITION_Y    1992
E: 0.245173 0003 0001 1992	# EV_ABS / ABS_Y                1992
E: 0.245173 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 0.245173 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.268692 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 0.268692 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 0.268692 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 0.268692 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 0.268692 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.268692 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.280994 0003 0035 4442	# EV_ABS / ABS_MT_POSITION_X    4442
E: 0.280994 0003 0000 4442	# EV_ABS / ABS_X                4442
E: 0.280994 0003 0018 0008	# EV_ABS / ABS_PRESSURE         8
E: 0.280994 0003 001c 0007	# EV_ABS / ABS_TOOL_WIDTH       7
E: 0.280994 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.305824 0003 0018 0006	# EV_ABS / ABS_PRESSURE         6
E: 0.305824 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 0.305824 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.318151 0003 0035 4434	# EV_ABS / ABS_MT_POSITION_X    4434
E: 0.318151 0003 0036 1994	# EV_ABS / ABS_MT_POSITION_Y    1994
E: 0.318151 0003 0000 4434	# EV_ABS / ABS_X                4434
E: 0.318151 0003 0001 1994	# EV_ABS / ABS_Y                1994
E: 0.318151 0003 001c 0007	# EV_ABS / ABS_TOOL_WIDTH       7
E: 0.318151 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.330414 0003 0039 -001	# EV_ABS / ABS_MT_TRACKING_ID   -1
E: 0.330414 0003 0018 0003	# EV_ABS / ABS_PRESSURE         3
E: 0.330414 0003 001c 0000	# EV_ABS / ABS_TOOL_WIDTH       0
E: 0.330414 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 0.330414 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.465058 0003 0018 0002	# EV_ABS / ABS_PRESSURE         2
E: 0.465058 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.477427 0003 0018 0001	# EV_ABS / ABS_PRESSURE         1
E: 0.477427 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 0.538851 0003 0018 0000	# EV_ABS / ABS_PRESSURE         0
E: 0.538851 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 1.077800 0003 0018 0001	# EV_ABS / ABS_PRESSURE         1
E: 1.077800 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 1.163593 0003 0018 0002	# EV_ABS / ABS_PRESSURE         2
E: 1.163593 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.009335 0003 0039 30940	# EV_ABS / ABS_MT_TRACKING_ID   30940
E: 2.009335 0003 0035 4442	# EV_ABS / ABS_MT_POSITION_X    4442
E: 2.009335 0003 0036 2006	# EV_ABS / ABS_MT_POSITION_Y    2006
E: 2.009335 0003 0000 4442	# EV_ABS / ABS_X                4442
E: 2.009335 0003 0001 2006	# EV_ABS / ABS_Y                2006
E: 2.009335 0003 0018 0008	# EV_ABS / ABS_PRESSURE         8
E: 2.009335 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.009335 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 2.009335 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.021606 0003 0035 4431	# EV_ABS / ABS_MT_POSITION_X    4431
E: 2.021606 0003 0036 1980	# EV_ABS / ABS_MT_POSITION_Y    1980
E: 2.021606 0003 0000 4431	# EV_ABS / ABS_X                4431
E: 2.021606 0003 0001 1980	# EV_ABS / ABS_Y                1980
E: 2.021606 0003 0018 0009	# EV_ABS / ABS_PRESSURE         9
E: 2.021606 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 2.021606 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.032956 0003 0035 4443	# EV_ABS / ABS_MT_POSITION_X    4443
E: 2.032956 0003 0036 1976	# EV_ABS / ABS_MT_POSITION_Y    1976
E: 2.032956 0003 0000 4443	# EV_ABS / ABS_X                4443
E: 2.032956 0003 0001 1976	# EV_ABS / ABS_Y                1976
E: 2.032956 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.032956 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.045211 0003 0035 4431	# EV_ABS / ABS_MT_POSITION_X    4431
E: 2.045211 0003 0036 1992	# EV_ABS / ABS_MT_POSITION_Y    1992
E: 2.045211 0003 0000 4431	# EV_ABS / ABS_X                4431
E: 2.045211 0003 0001 1992	# EV_ABS / ABS_Y                1992
E: 2.045211 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.057536 0003 0036 1980	# EV_ABS / ABS_MT_POSITION_Y    1980
E: 2.057536 0003 0001 1980	# EV_ABS / ABS_Y                1980
E: 2.057536 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 2.057536 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.069805 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 2.069805 0003 0036 2050	# EV_ABS / ABS_MT_POSITION_Y    2050
E: 2.069805 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 2.069805 0003 0001 2050	# EV_ABS / ABS_Y                2050
E: 2.069805 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.069805 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.082063 0003 0036 2042	# EV_ABS / ABS_MT_POSITION_Y    2042
E: 2.082063 0003 0001 2042	# EV_ABS / ABS_Y                2042
E: 2.082063 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 2.082063 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.094352 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.094352 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.106640 0003 0035 4442	# EV_ABS / ABS_MT_POSITION_X    4442
E: 2.106640 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 2.106640 0003 0000 4442	# EV_ABS / ABS_X                4442
E: 2.106640 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 2.106640 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.118989 0003 0035 4427	# EV_ABS / ABS_MT_POSITION_X    4427
E: 2.118989 0003 0036 1996	# EV_ABS / ABS_MT_POSITION_Y    1996
E: 2.118989 0003 0000 4427	# EV_ABS / ABS_X                4427
E: 2.118989 0003 0001 1996	# EV_ABS / ABS_Y                1996
E: 2.118989 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.131279 0003 0035 4442	# EV_ABS / ABS_MT_POSITION_X    4442
E: 2.131279 0003 0036 1986	# EV_ABS / ABS_MT_POSITION_Y    1986
E: 2.131279 0003 0000 4442	# EV_ABS / ABS_X                4442
E: 2.131279 0003 0001 1986	# EV_ABS / ABS_Y                1986
E: 2.131279 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 2.131279 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.143569 0003 0035 4413	# EV_ABS / ABS_MT_POSITION_X    4413
E: 2.143569 0003 0036 1991	# EV_ABS / ABS_MT_POSITION_Y    1991
E: 2.143569 0003 0000 4413	# EV_ABS / ABS_X                4413
E: 2.143569 0003 0001 1991	# EV_ABS / ABS_Y                1991
E: 2.143569 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.180394 0003 0035 4422	# EV_ABS / ABS_MT_POSITION_X    4422
E: 2.180394 0003 0036 2034	# EV_ABS / ABS_MT_POSITION_Y    2034
E: 2.180394 0003 0000 4422	# EV_ABS / ABS_X                4422
E: 2.180394 0003 0001 2034	# EV_ABS / ABS_Y                2034
E: 2.180394 0003 0018 0007	# EV_ABS / ABS_PRESSURE         7
E: 2.180394 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.180394 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.193259 0003 0035 4438	# EV_ABS / ABS_MT_POSITION_X    4438
E: 2.193259 0003 0036 2006	# EV_ABS / ABS_MT_POSITION_Y    2006
E: 2.193259 0003 0000 4438	# EV_ABS / ABS_X                4438
E: 2.193259 0003 0001 2006	# EV_ABS / ABS_Y                2006
E: 2.193259 0003 001c 0007	# EV_ABS / ABS_TOOL_WIDTH       7
E: 2.193259 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.205516 0003 0035 4410	# EV_ABS / ABS_MT_POSITION_X    4410
E: 2.205516 0003 0036 2050	# EV_ABS / ABS_MT_POSITION_Y    2050
E: 2.205516 0003 0000 4410	# EV_ABS / ABS_X                4410
E: 2.205516 0003 0001 2050	# EV_ABS / ABS_Y                2050
E: 2.205516 0003 0018 0005	# EV_ABS / ABS_PRESSURE         5
E: 2.205516 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.205516 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.216774 0003 0035 4433	# EV_ABS / ABS_MT_POSITION_X    4433
E: 2.216774 0003 0036 2059	# EV_ABS / ABS_MT_POSITION_Y    2059
E: 2.216774 0003 0000 4433	# EV_ABS / ABS_X                4433
E: 2.216774 0003 0001 2059	# EV_ABS / ABS_Y                2059
E: 2.216774 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.229074 0003 0035 4426	# EV_ABS / ABS_MT_POSITION_X    4426
E: 2.229074 0003 0036 2034	# EV_ABS / ABS_MT_POSITION_Y    2034
E: 2.229074 0003 0000 4426	# EV_ABS / ABS_X                4426
E: 2.229074 0003 0001 2034	# EV_ABS / ABS_Y                2034
E: 2.229074 0003 001c 0008	# EV_ABS / ABS_TOOL_WIDTH       8
E: 2.229074 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.241366 0003 0035 4432	# EV_ABS / ABS_MT_POSITION_X    4432
E: 2.241366 0003 0036 2049	# EV_ABS / ABS_MT_POSITION_Y    2049
E: 2.241366 0003 0000 4432	# EV_ABS / ABS_X                4432
E: 2.241366 0003 0001 2049	# EV_ABS / ABS_Y                2049
E: 2.241366 0003 001c 0006	# EV_ABS / ABS_TOOL_WIDTH       6
E: 2.241366 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.253821 0003 0035 1798	# EV_ABS / ABS_MT_POSITION_X    1798
E: 2.253821 0003 0036 4338	# EV_ABS / ABS_MT_POSITION_Y    4338
E: 2.253821 0003 002f 0001	# EV_ABS / ABS_MT_SLOT          1
E: 2.253821 0003 0039 30941	# EV_ABS / ABS_MT_TRACKING_ID   30941
E: 2.253821 0003 0035 4432	# EV_ABS / ABS_MT_POSITION_X    4432
E: 2.253821 0003 0036 2049	# EV_ABS / ABS_MT_POSITION_Y    2049
E: 2.253821 0003 0018 0003	# EV_ABS / ABS_PRESSURE         3
E: 2.253821 0003 001c 0005	# EV_ABS / ABS_TOOL_WIDTH       5
E: 2.253821 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 2.253821 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 2.253821 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.277494 0003 002f 0000	# EV_ABS / ABS_MT_SLOT          0
E: 2.277494 0003 0039 -001	# EV_ABS / ABS_MT_TRACKING_ID   -1
E: 2.277494 0003 002f 0001	# EV_ABS / ABS_MT_SLOT          1
E: 2.277494 0003 0039 -001	# EV_ABS / ABS_MT_TRACKING_ID   -1
E: 2.277494 0003 001c 0000	# EV_ABS / ABS_TOOL_WIDTH       0
E: 2.277494 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 2.277494 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.375851 0003 0018 0002	# EV_ABS / ABS_PRESSURE         2
E: 2.375851 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.510973 0003 0018 0001	# EV_ABS / ABS_PRESSURE         1
E: 2.510973 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.633323 0003 0018 0002	# EV_ABS / ABS_PRESSURE         2
E: 2.633323 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.670352 0003 0018 0003	# EV_ABS / ABS_PRESSURE         3
E: 2.670352 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.694961 0003 0018 0005	# EV_ABS / ABS_PRESSURE         5
E: 2.694961 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.730693 0003 0018 0006	# EV_ABS / ABS_PRESSURE         6
E: 2.730693 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.767560 0003 0018 0005	# EV_ABS / ABS_PRESSURE         5
E: 2.767560 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.878600 0003 0018 0003	# EV_ABS / ABS_PRESSURE         3
E: 2.878600 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.903152 0003 0018 0001	# EV_ABS / ABS_PRESSURE         1
E: 2.903152 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
E: 2.940144 0003 0018 0000	# EV_ABS / ABS_PRESSURE         0
E: 2.940144 0000 0000 0000	# ------------ SYN_REPORT (0) ----------
^C[501][aruiz@kerrigan ~]$
Comment 1 Peter Hutterer 2014-12-11 03:32:29 UTC
I need three more logs please: 
* single finger down on the surface, second finger hovering
* two fingers down, third finger hovering
* two fingers down
Comment 2 Alberto Ruiz 2014-12-11 10:49:04 UTC
Created attachment 110732 [details]
evemu-record: Single finger down, second hovering
Comment 3 Alberto Ruiz 2014-12-11 10:49:37 UTC
Created attachment 110733 [details]
evemu-record: Two fingers down, third hovering
Comment 4 Alberto Ruiz 2014-12-11 10:50:00 UTC
Created attachment 110734 [details]
evemu-record: Just two fingers down
Comment 5 Peter Hutterer 2014-12-11 23:30:11 UTC
thanks for the recordings. Preliminary analysis:

BTN_TOUCH is set when a finger meets a given pressure threshold. see https://git.kernel.org/cgit/linux/kernel/git/jikos/hid.git/tree/drivers/input/mouse/synaptics.c#n1293
The hardcoded 30 matches the synaptics user interface guidelines section "3.2.5. Absolute mode Z values"
So we can use that to check if a finger is down or hovering.


Alas, BTN_TOOL_DOUBLETAP is set as soon as the second slot is active and we lose hover information for the second finger. BTN_TOUCH may be set if the pressure is high enough, but it may not be. If it is set, we don't know if the second finger is down too or just hovering. So we can only tell if both fingers are hovering (DOUBLETAP 1, TOUCH 0) or at least one finger is down (DOUBLETAP 1, TOUCH 1). ABS_PRESSURE is useless otherwise, it doesn't give us any information that we could use to work with the second finger.

So right now it looks like we can avoid erroneous events while all fingers are hovering, but we cannot avoid them once a single finger is down.


Alberto, you can verify the above
Comment 6 Peter Hutterer 2014-12-11 23:31:40 UTC
oopsy, accidentally hit enter.

Alberto, you can verify the above by running evemu-record | grep BTN_blah and grep for the various BTN_TOUCH, BTN_TOOL_DOUBLETAP, BTN_TOOL_TRIPLETAP bits. Hover with fingers, touch the touchpad and look at how they change. If my analysis is out, please let me know
Comment 7 Alberto Ruiz 2014-12-12 01:04:21 UTC
This is what I get when I touch with the first finger straight away, you're right, only a single BTN_TOUCH is sent, after that we get pairs of FINGER/DOUBLETAP or FINGER/TRIPLETAP whenever I get to hover the other fingers (it doesn't matter if I actually tap or hover the 2nd or 3rd finger).

E: 0.000000 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 0.023554 0001 014a 0001	# EV_KEY / BTN_TOUCH            1
E: 3.210067 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 3.210067 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 3.222594 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 3.222594 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 3.246199 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 3.246199 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 3.258874 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 3.258874 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 3.283560 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 3.283560 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 3.295906 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 3.295906 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 3.356936 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 3.356936 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 3.516155 0001 0145 0001	# EV_KEY / BTN_TOOL_FINGER      1
E: 3.516155 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 5.132726 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 5.132726 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 8.489703 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 8.489703 0001 014e 0001	# EV_KEY / BTN_TOOL_TRIPLETAP   1
E: 8.562962 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 8.562962 0001 014e 0000	# EV_KEY / BTN_TOOL_TRIPLETAP   0
E: 8.612023 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 8.612023 0001 014e 0001	# EV_KEY / BTN_TOOL_TRIPLETAP   1
E: 8.783801 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
E: 8.783801 0001 014e 0000	# EV_KEY / BTN_TOOL_TRIPLETAP   0
E: 9.323452 0001 014d 0000	# EV_KEY / BTN_TOOL_DOUBLETAP   0
E: 9.323452 0001 014e 0001	# EV_KEY / BTN_TOOL_TRIPLETAP   1
Comment 8 Peter Hutterer 2015-01-15 03:50:37 UTC
Addendum here: Jasper sent me an evemu-record from an alps touchpad today that didn't set BTN_TOUCH at all. The pressure never went past the kernel threshold to set it, even at what Jasper said was a heavy touch.

The patch series on the list for hovering touches is inadequate for that case, we can't rely on BTN_TOUCH by the kernel for all devices.
Comment 9 Jasper St. Pierre 2015-01-15 07:20:59 UTC
This was a touchpad from a prototype laptop we were looking at building. The touchpad or the kernel might have been misconfigured.
Comment 10 Peter Hutterer 2015-01-15 22:31:33 UTC
ok, let's not worry about it for now then. I suspect we'll have to deal with it one day, but not today :)
Comment 11 Peter Hutterer 2015-01-19 10:29:49 UTC
commit a467ac32cf5e731d4c18f4cf2983cec8c9c2a6af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 11 16:39:04 2014 +1000

    touchpad: add a TOUCH_HOVERING state


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.