Sporadic proximity-out events on Wacom tablet when drawing slowly
The need_to_force_prox_out
quirk is working in a counter-intuitive fashion. If I draw rather slowly, I find that libinput registers a proximity-out event. In practice this actually occurs fairly frequently when trying to draw sharp angles, as you naturally come to a point, and my low-end tablet simply doesn't fire enough events to prevent the forced proximity out. (With tablets that have a huge number of pressure levels and tilt events, may be harder to trigger this problem. I tried another different Wacom tablet and noticed the same problem, though.)
I noticed when staring at evtest
output that I always get an ABS_PRESSURE
0
event no matter how my pen leaves the active area. I suspect that a good solution might be to simply suppress the forced proximity out until the pressure drops below the lower threshold. Does this sound good? I will try to implement this for my sake, because I need a local patch either way, but I do understand if this approach is not tractable, for example if this would not be applicable to all tablets with this quirk. I would greatly appreciate if we could come to some kind of a solution here, though, as it is genuinely not very usable as-is.
My tablet is the same as in the previous issue:
$ lsusb | grep Wacom
Bus 005 Device 018: ID 056a:0302 Wacom Co., Ltd CTH-480 [Intuos Pen & Touch (S)]
$ uname -a
Linux nullptr 5.2.16 #1-NixOS SMP Thu Sep 19 07:11:09 UTC 2019 x86_64 GNU/Linux
Demonstration of the problem in libinput debug-events
:
event10 TABLET_TOOL_AXIS +28.10s 88.55/72.05 pressure: 0.50*
event10 TABLET_TOOL_AXIS +28.11s 88.55/72.05 pressure: 0.50*
event10 TABLET_TOOL_TIP +28.16s 88.55/72.05 pressure: 0.50 up
event10 TABLET_TOOL_PROXIMITY +28.16s 88.55/72.05 pressure: 0.50 pen (0, id 0) proximity-out
event10 TABLET_TOOL_PROXIMITY +28.22s 88.54*/72.05* pressure: 0.50* pen (0, id 0) proximity-in axes:dp btn:SS2
event10 TABLET_TOOL_TIP +28.22s 88.54/72.05 pressure: 0.50 down
event10 TABLET_TOOL_AXIS +28.23s 88.54/72.05 pressure: 0.50*
event10 TABLET_TOOL_TIP +28.28s 88.54/72.05 pressure: 0.50 up
event10 TABLET_TOOL_PROXIMITY +28.28s 88.54/72.05 pressure: 0.50 pen (0, id 0) proximity-out
event10 TABLET_TOOL_PROXIMITY +28.33s 88.54*/72.05* pressure: 0.49* pen (0, id 0) proximity-in axes:dp btn:SS2
event10 TABLET_TOOL_TIP +28.33s 88.54/72.05 pressure: 0.49 down
event10 TABLET_TOOL_AXIS +28.33s 88.54/72.05 pressure: 0.49*
event10 TABLET_TOOL_AXIS +28.34s 88.54/72.05 pressure: 0.48*
event10 TABLET_TOOL_AXIS +28.35s 88.54/72.05 pressure: 0.45*
(Notice how pressure is at 0.50 as a proximity-out event occurs.)