Cursor jumps at random with new Trackpoint code
This issue was originally reported to the wrong bugtracker. As requested there, I've attached a file with output from "libinput record". The original issue follows:
I've been trying out the new trackpoint code that was merged a few weeks ago, since I had issues with the old code (the averaging, curve, delta capping..) While for the most part this code seems to work much better than the previous, I immediately ran into a pretty big issue that made the trackpoint unusable: the cursor, seemingly at random, makes really big jumps.
Running "libinput record " revealed events triggered "+0ms" after the previous event which coincide with the jumps.
Setting ntrackers to 2 seems to make this issue much more pronounced.
My temporary fix for this is:
diff --git a/src/filter.c b/src/filter.c
index fe60c62a..feeee108 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -224,6 +224,8 @@ trackers_velocity(struct pointer_trackers *trackers, uint64_t time)
/* Bug: time running backwards */
if (tracker->time > time)
break;
+ if ((time - tracker->time) < 1000)
+ break;
/* Stop if too far away in time */
if (time - tracker->time > MOTION_TIMEOUT) {
..but investigating why these events are triggered in the first place would probably be preferable, whether it's a libinput bug or a kernel driver issue.
All testing was primarily done on a Thinkpad X1 Carbon Gen3.