Matt Mayfield [Sun, 14 Jul 2019 17:50:14 +0000 (12:50 -0500)]
touchpad: don't detect speed-based thumbs if there's already a thumb
Peter Hutterer [Wed, 10 Jul 2019 04:06:07 +0000 (14:06 +1000)]
doc/user: add documentation for the new thumb detection
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Matt Mayfield [Fri, 21 Jun 2019 03:19:22 +0000 (13:19 +1000)]
touchpad: revamp thumb detection
Instead of a simple yes/no/maybe for thumbs, have a more extensive state
machine that keeps track of the thumb. Since we only support one thumb anyway,
the tracking moves to the tp_dispatch struct.
Test case changes:
touchpad_clickfinger_3fg_tool_position:
with better thumb detection we can now handle this properly and expect a
right button (2fg) press for the test case
touchpad_thumb_no_doublethumb_with_timeout:
two thumbs are now always two fingers, so let's switch to axis events here
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 10 Jul 2019 02:45:46 +0000 (12:45 +1000)]
test: make the touchpad size the only check for thumb detection
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 10 Jul 2019 02:10:42 +0000 (12:10 +1000)]
test: only run the speed finger tests when the touchpad has thumb detection
Peter Hutterer [Wed, 10 Jul 2019 02:07:09 +0000 (12:07 +1000)]
test: only run the speed tests for clickpads
We don't need speed detection for non-clickpads - the only reason to ever drop
a second finger on those is to either scroll or trigger a gesture. Unlike
clickpads, where a dropped finger may be a thumb to click.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 10 Jul 2019 01:56:52 +0000 (11:56 +1000)]
touchpad: only log edge scroll state changes when the state actually changes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Fri, 21 Jun 2019 01:26:11 +0000 (11:26 +1000)]
touchpad: add a helper function for supressing a thumb
Only sets the state to YES at the moment, will do more in the future.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Matt Mayfield [Fri, 31 Aug 2018 02:29:46 +0000 (21:29 -0500)]
gestures: Improve thumb detection, allow one finger scroll
Check if there's a thumb if we have two touches. If one finger moves but
the thumb remains still, we assume that one is really a thumb. But if the
thumb moves while the finger is still, let's assume this is a 2-finger scroll.
Extracted from Matt Mayfield's thumb detection patchset
Peter Hutterer [Thu, 20 Jun 2019 11:25:25 +0000 (21:25 +1000)]
gestures: fast-track scroll/swipe detection when gestures are off
We can't detect pinch when gestures are off anyway, so we don't need to check
the finger distances.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Matt Mayfield [Sat, 25 Aug 2018 04:17:03 +0000 (23:17 -0500)]
gestures: improvements to pinch detection
Only bias towards scrolling if the fingers are in the position past the
timeout.
Matt Mayfield [Wed, 22 Aug 2018 02:12:33 +0000 (21:12 -0500)]
gestures: improve scroll responsiveness for vertically aligned touches
Put some basic location checks in, if the fingers are next to each other and
vertically close, assume scroll over swipe.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>:
Matt Mayfield [Sat, 18 Aug 2018 06:10:34 +0000 (01:10 -0500)]
touchpad: basic thumb detection within gestures
When a touchpad has thumb detection enabled, avoid false-positive gestures
involving a resting thumb by using two thresholds: inner and outer.
While both touches remain inside their inner thresholds, remain in UNKNOWN
state to allow for accurate gesture detection even with no timeout.
If both touches move outside their inner thresholds, start a pinch or
swipe/scroll gesture according to direction, as usual.
If one touch moves outside its outer threshold while the other has not yet
exceeded its inner threshold, and thumb detection is enabled, then if one
touch is >20mm lower, mark it as a thumb and cancel the gesture.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 00:56:17 +0000 (10:56 +1000)]
touchpad: rename the thumb detection methods
No functional changes, just prep work for a later patch where the thumbs will
dynamically update their state (instead of just using yes/no/maybe).
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 00:37:37 +0000 (10:37 +1000)]
touchpad: extract some bits of thumb detection into helper functions
No functional changes
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 19 Jun 2019 02:05:25 +0000 (12:05 +1000)]
touchpad: move the speed-thumb detection code to the thumb helper file
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 19 Jun 2019 02:04:23 +0000 (12:04 +1000)]
touchpad: add helper function to reset a thumb's state
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 19 Jun 2019 02:01:09 +0000 (12:01 +1000)]
touchpad: explicitly start with detect_thumbs as false
Not needed because we zalloc() anyway, but this makes it grep-able.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 19 Jun 2019 01:57:45 +0000 (11:57 +1000)]
touchpad: add helper function for setting the thumb state
This moves the thumb state logging directly into that helper function too.
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 00:53:39 +0000 (10:53 +1000)]
touchpad: move tp_init_thumb and tp_thumb_detect to the thumb file
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 00:21:13 +0000 (10:21 +1000)]
touchpad: add a helper function for counting touches for gestures
Currently the same as tp_touch_active() but this will change.
No functional changes.
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 00:16:33 +0000 (10:16 +1000)]
touchpad: add a helper function for checking thumb state
No functional changes
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 00:27:59 +0000 (10:27 +1000)]
touchpad: rename the scroll timeout define, drop the pinch one
The previously 'scroll'-named timeout is also used for swipe, so let's rename
it. And the pinch one isn't used at all.
Extracted from Matt Mayfield's thumb detection patches.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 08:24:49 +0000 (18:24 +1000)]
touchpad: reduce state debugging output by only logging changed states
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 10 Jul 2019 03:52:25 +0000 (13:52 +1000)]
doc/user: fix a typo
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 22:31:01 +0000 (08:31 +1000)]
meson: run the test suite per group
We can't run this in parallel so it doesn't gain us any speed advantage. If
anything, it'll be slower because it's more setup time in between. But: meson
doesn't display the result until the test suite finished, so having this
broken up into smaller chunks means we're more likely to see a general failure
early.
And the failure should be quicker to reproduce as well.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 1 Jul 2019 02:20:44 +0000 (12:20 +1000)]
test: use the default job control for --filter-groups
All filter arguments currently force a -j1 unless otherwise specified. Change
this for --filter-group since that one is most likely invoked by some test
setup that can either add -j X or set the environment variable LITEST_JOBS as
well.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 1 Jul 2019 02:34:09 +0000 (12:34 +1000)]
meson.build: move the leftover udev rule check up
ninja executes the test in the same order but we don't want to waste 5 minutes
testing other things when we have a udev rule leftover from a previous run.
Plus, this test can't be run in parallel with others, so in the worst case we
had to wait for several long-running tests to finish before this one could be
started.
To avoid all this, let's move this up to be the first check.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Sun, 7 Jul 2019 23:53:49 +0000 (09:53 +1000)]
test: fix an always-true check for udev properties
Found by coverity
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Sun, 7 Jul 2019 23:47:31 +0000 (09:47 +1000)]
test: fix two coverity warnings
Alleged division by zero and use of an uninitialized variable. Both cannot
happen the way we call the tests, so let's just abort to make coverity happy.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 1 Jul 2019 06:12:26 +0000 (16:12 +1000)]
test: drop the litest feature enum, make it normal bits instead
The coverity compiler can't handle 64-bit enums and since it does provide
useful data, let's switch this to #defines instead.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
pixl [Fri, 5 Jul 2019 05:14:31 +0000 (05:14 +0000)]
Fixed a grammar error
Peter Hutterer [Tue, 29 Jan 2019 04:34:47 +0000 (14:34 +1000)]
test: one O_NONBLOCK is enough
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 22:51:51 +0000 (08:51 +1000)]
quirks: add touchpad range for cypress touchpads
As found in the Dell XPS 12 9Q23
Fixes #310
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 22:50:51 +0000 (08:50 +1000)]
quirks: rename the cyapa quirks file to cypress
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 25 Jun 2019 22:55:07 +0000 (08:55 +1000)]
evdev: when the kernel fuzz is nonzero, set ours to zero
Our udev callout is supposed to reset the kernel fuzz to 0 and move the value
to the LIBINPUT_FUZZ property. This is to stop the kernel from applying its
own hysteresis-like approach.
Where the kernel fuzz is nonzero, something has gone wrong with that approach.
Complain about it and set our fuzz to zero, we are in the hands of the kernel
now. If we leave our fuzz as nonzero, we'll apply our own hysteresis on top of
the kernel's and that leads to unresponsive behavior.
Fixes #313
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 27 Jun 2019 01:12:58 +0000 (11:12 +1000)]
meson: force litest to use the right udev rules
We generate litest-specific udev rules that contain the path to the binaries
in the builddir. But litest wasn't using those, so IMPORT would run things in
/usr/lib/udev instead. Thus any changes to those binaries generated false test
results depending on how compatible the system-installed libinput was.
This is why 410b157 passed the test suite for example.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 05:38:43 +0000 (15:38 +1000)]
tools: return 77 if gtk_init() fails in the debug-gui
And when that happens, skip the tests because what's happening here is that
you're running tests as root, but your X server doesn't allow root to connect.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 07:05:41 +0000 (17:05 +1000)]
meson: increase the test time for the selftest suite
Because it's timing out on the XPS
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 05:44:16 +0000 (15:44 +1000)]
test: disable coredumps for the selftest
Because on my XPS coredumps take away all the CPU, leading to a test timeout.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 03:55:36 +0000 (13:55 +1000)]
evdev: only extract the fuzz for touchpads and touchscreens
We don't have a hysteresis for tablet devices, so let's leave those as-is.
This may be a slight regression in behavior compared to pre-
410b157e84 now the
kernel will apply the fuzz. Let's see if anyone notices, the fuzz is usually
so tiny on tablets that it shouldn't be noticable.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 04:15:09 +0000 (14:15 +1000)]
If we never initialized the libwacom database, don't check the refcount
If the libwacom context failed to initialize for some reason, the database is
NULL and the refcount remains at zero. Calling unref should just work then.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 24 Jun 2019 23:37:25 +0000 (09:37 +1000)]
tools: skip debug-gui option testing if the debug-gui is disabled
Fixes #311
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 01:31:56 +0000 (11:31 +1000)]
udev: only change the fuzz on touchpads and touchscreens (v2)
If we don't handle a device, don't touch it. Especially joysticks that we
don't handle and thus should not touch either.
Related to !231
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 01:29:31 +0000 (11:29 +1000)]
udev: rename libinput-model-quirks rules to libinput-fuzz-override.rules
Because these days, that's all it does
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 26 Jun 2019 01:19:23 +0000 (11:19 +1000)]
Revert "udev: only change the fuzz on touchpads and touchscreens"
This causes a regression - the ID_INPUT_* properties are not available through
libudev within a callout, the device we get here basically has no properties.
Reverts !231
This reverts commit
410b157e8487191a32acf5b3bf3811d40e96dac7.
Peter Hutterer [Mon, 24 Jun 2019 02:49:33 +0000 (12:49 +1000)]
tools: improve the error messages for measure touch-size/touchpad-pressure
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 24 Jun 2019 02:48:20 +0000 (12:48 +1000)]
doc: note that libinput measure is a separate package
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Fri, 21 Jun 2019 00:35:33 +0000 (10:35 +1000)]
test: fix the slot swap test again
The previous movement was one finger still, the second finger moving. This may
cause axis events to trigger when a 2fg scroll gesture was detected. Those
axis events will stop after the gesture timeout but generate one more axis
stop event.
Make two changes here: first, move the fingers like a proper 2fg scroll
motion. And shuffle around the litest_drain_events() calls to ignore any axis
event immediately after the timeout.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 06:19:56 +0000 (16:19 +1000)]
test: avoid a pointer jump when testing for the slot continuation
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 06:38:07 +0000 (16:38 +1000)]
test: fix the slot swap test
This test worked because no gesture was detected in the initial movement.
If that happens though, releasing one finger triggers the gesture timeout
during which we suppress events, thus failing the test. Fix this by moving,
waiting, moving - that will definitely generate an event.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 04:15:02 +0000 (14:15 +1000)]
test: use an enum for the cardinals
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 03:38:47 +0000 (13:38 +1000)]
test: fix button area scroll test to not be a pinch
Second finger's x coordinate was wrong. That we didn't pick this up as pinch
is quite telling too.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 03:36:57 +0000 (13:36 +1000)]
test: move the fingers closer together for the empty-slot test
If we're testing for this, let's not try to get it picked up as pinch
gestures. Only an issue on the wacom and magic trackpads because of their
physical size.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 20 Jun 2019 03:34:10 +0000 (13:34 +1000)]
test: change touchpad 2fg no-motion test to move both fingers simultaneously
In the future we may allow motion with one finger on the touchpad.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
timrichardson [Thu, 20 Jun 2019 03:55:49 +0000 (13:55 +1000)]
X230 trackpoint quirk
Peter Hutterer [Tue, 18 Jun 2019 11:29:29 +0000 (21:29 +1000)]
test: replace a touch move with a timeout
We only care about the third-finger data here, the movement of the first two
was just to get out of the base tap states. A timeout will do the same thing
here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 11:00:55 +0000 (21:00 +1000)]
test: fix initial coordinates for synaptics tripletap quirk
I don't think there was a specific reason for the second touch point to jump
around here either and the comment indicates it was just to avoid the
clickfinger distance trigger. So let's just move the first touchpoint.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 10:52:42 +0000 (20:52 +1000)]
test: don't form a pinch gesture for the clickfinger distance test
If the fingers are in the position in the current code, that's not a 3fg
click, that's a pinch. Let's use something more realistic.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 10:50:44 +0000 (20:50 +1000)]
test: don't go into the thumb area for the 3fg clickfinger distance check
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 10:48:22 +0000 (20:48 +1000)]
test: remove two spurious SYN_REPORTs
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 05:36:13 +0000 (15:36 +1000)]
test: add another test for thumb movements
Small movements mustn't trigger events, large movements should.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 05:13:05 +0000 (15:13 +1000)]
test: fix the clickfinger thumb test
This test was putting both fingers down in the thumb area. That's not
representative, it's more likely that a thumb is in the area and the second
finger clicks elsewhere. So let's test for that instead.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 02:08:19 +0000 (12:08 +1000)]
test: rename/fix/move thumb tests
These were supposed to test the thumb area, but the pressure exceeded the
threshold for most devices, thus ending up testing the palm detection instead.
Fix to use a timeout where possible, otherwise move them to the palm detection
code instead.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 18 Jun 2019 03:20:32 +0000 (13:20 +1000)]
touchpad: slightly change a debug message
Makes it clearer that thumb detection always enables area-based detection.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 17 Jun 2019 03:25:59 +0000 (13:25 +1000)]
tablet: disable the forced proximity out for the Dell Canvas pen
This pen has random timeouts, often when a button is pressed. This causes a
forced proximity out (and the button release) and makes the whole device a
tad unusable.
Nothing we can detect by heuristics since it looks like other devices that
don't send proximity out events. And the timeout can be quite high, the
recording in #304 has over 800ms for one sequence.
Fixes #304
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 17 Jun 2019 04:02:07 +0000 (14:02 +1000)]
quirk: drop the ModelTabletNoTilt quirk
This quirk is unused, use AttrEventCodeDisable instead.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 17 Jun 2019 01:18:57 +0000 (11:18 +1000)]
tablet: fix double proximity out on slow proximity out pens
Where the proximity out event is delayed by the kernel, libinput would cause
an extra proxmity in-out after the forced proximity out event.
Event sequence is basically (k: kernel, l: libinput)
k: tablet axis events
l: tablet axis events
k: nothing for $proximity timer milliseconds
l: tablet proximity out
k: proximity out event
l: proximity in event
l: proximity out event
Fixes #306
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 17 Jun 2019 01:35:31 +0000 (11:35 +1000)]
test: don't make timer offset errors fatal in gdb
No way we can debug without triggering those, so let's not make them fatal.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Michael Forney [Mon, 17 Jun 2019 02:37:37 +0000 (19:37 -0700)]
Replace one more __builtin_popcount with bitwise test
__builtin_popcount might not be available and in this case, a bitwise-and
can accomplish the same task.
Signed-off-by: Michael Forney <mforney@mforney.org>
Michael Forney [Sat, 15 Jun 2019 21:31:03 +0000 (14:31 -0700)]
Don't return expression in function returning void
This is a constraint violation in ISO C[0].
[0] http://port70.net/~nsz/c/c11/n1570.html#6.8.6.4p1
Signed-off-by: Michael Forney <mforney@mforney.org>
Michael Forney [Sat, 15 Jun 2019 21:04:38 +0000 (14:04 -0700)]
Use bitwise test instead of __builtin_popcount
__builtin_popcount might not be available on all compilers, so using
it requires a configure check and fallback implementation. In fact
on gcc without an -march flag, it gets compiled to a function call to
libgcc. However, we only need to test whether multiple bits are set,
and this can be done easily with a bitwise and.
Signed-off-by: Michael Forney <mforney@mforney.org>
Michael Forney [Sat, 15 Jun 2019 20:51:56 +0000 (13:51 -0700)]
Avoid case ranges in switch statement
Signed-off-by: Michael Forney <mforney@mforney.org>
Michael Forney [Sat, 15 Jun 2019 20:50:33 +0000 (13:50 -0700)]
Avoid unnecessary VLAs
When the array length is fixed, or bounded by a fixed upper bound,
just use that fixed length.
Signed-off-by: Michael Forney <mforney@mforney.org>
Michael Forney [Sat, 15 Jun 2019 20:50:03 +0000 (13:50 -0700)]
Remove semicolons after function definitions
Signed-off-by: Michael Forney <mforney@mforney.org>
Peter Hutterer [Mon, 10 Jun 2019 12:18:50 +0000 (22:18 +1000)]
test: only write one single rules file for our device quirks
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 10 Jun 2019 12:00:40 +0000 (22:00 +1000)]
test: auto-generate the udev rules
We only ever set properties in the devices, so let's make that more explicit
and auto-generate the udev rule. This way we're hopefully better protected
from the various typos that hid in those rules over the years, but also be
prepared for passing the udev property key/value pairs elsewhere.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 10 Jun 2019 12:08:33 +0000 (22:08 +1000)]
test: remove invalid GOTO in udev rule
This was always jumped over because for this device, the touchpad was never
set anyway.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 12 Jun 2019 04:24:57 +0000 (14:24 +1000)]
test: adjust the relative pointer motion test for low-dpi devices
This escaped us before because the MOUSE_DPI setting on the low-dpi device was
ignored thanks to a broken udev rule (see a future commit for that).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 12 Jun 2019 04:11:00 +0000 (14:11 +1000)]
test: replace the double assert macros with proper checks
Instead of value * 256 which makes for bad debug messages, expand it to a full
double test with a 1/256 epsilon.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 13 Jun 2019 00:54:22 +0000 (10:54 +1000)]
tools: describe the various debug-gui features in the man page
There are too many things now to make it immediately obvious, let's describe
all this accordingly.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 13 Jun 2019 00:35:13 +0000 (10:35 +1000)]
tools: handle pad strip/ring events in the debug-gui
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 12 Jun 2019 23:48:28 +0000 (09:48 +1000)]
tools: display tablet and tablet pad buttons when pressed
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Alex Flowers [Wed, 12 Jun 2019 06:16:32 +0000 (23:16 -0700)]
quirks: add a quirk for the Lenovo X1 Yoga 1st gen
Signed-off-by: Alex Flowers <afpv72@gmail.com>
Peter Hutterer [Tue, 11 Jun 2019 00:19:55 +0000 (10:19 +1000)]
test: remove a duplicate check
We already checked that pointer a few lines earlier
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 10 Jun 2019 22:24:10 +0000 (08:24 +1000)]
test: swap a few litest_assert() calls for their more precise cousins
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Mon, 10 Jun 2019 11:52:41 +0000 (21:52 +1000)]
test: add the 24HDT pad to the custom device group
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 05:31:53 +0000 (15:31 +1000)]
path: add helper function to destroy a device
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 01:17:42 +0000 (11:17 +1000)]
path: initialize the quirks context after error checking
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 00:44:10 +0000 (10:44 +1000)]
path: factor out the seat creation into a helper function
No functional changes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 00:29:35 +0000 (10:29 +1000)]
udev: don't init the quirks until we checked all arguments
If we fail with an invalid argument, there's no need to initialize all the
quirks beforehand.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 04:25:21 +0000 (14:25 +1000)]
path: drop the separate header, not necessary
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 6 Jun 2019 04:40:11 +0000 (14:40 +1000)]
test: abort if our device didn't initialize
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Tue, 11 Jun 2019 05:38:09 +0000 (15:38 +1000)]
test: fix an intermitted failing test
The touchpad_2fg_scroll_initially_diagonal test would semi-reliably fail under
valgrind but succeed otherwise. Cause was that on some devices, the initial
diagonal movement wasn't diagonal enough and closer to a horizontal movement.
This was fine on normal runs, but under valgrind we'd hit the "active
threshold" time limit and lock to horizontal scrolling, ditching the remaining
events and failing the test.
Fix this by calculating the scroll vector based on the device's width/height
ratio and go "more diagonal" on the initial vector.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Zach Moazeni [Thu, 6 Jun 2019 04:33:06 +0000 (00:33 -0400)]
Better Thinkpad T480 trackpoint multiplier
Peter Hutterer [Wed, 5 Jun 2019 00:11:12 +0000 (10:11 +1000)]
udev: only change the fuzz on touchpads and touchscreens
If we don't handle a device, don't touch it. Especially joysticks that we
don't handle and thus should not touch either.
Related to !231
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Fri, 14 Sep 2018 04:03:09 +0000 (14:03 +1000)]
Add a new dispatch interface for the Dell Canvas Totem
This device looks similar to a MT device on the kernel side, but it's not a
MT device and it's not quite a tablet either. It uses slots to track up to 4
totems off the same device and the only hint that it's not a MT device is that
it sends ABS_MT_TOOL_TYPE / MT_TOOL_DIAL.
udev thinks it's a touchscreen and a tablet but we currently init those
devices as touchscreen (because all wacom tablet touch devices are udev
tablets+tochscreens). So we need a quirk to hook onto this device.
And we use a completely separate dispatch implementation, because adding the
behavior to the tablet interface requires so many exceptions that it's easier
to just add a separate dispatch interface.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Thu, 13 Sep 2018 03:26:22 +0000 (13:26 +1000)]
tablet: add a the Totem tool type to the tablet interface
This is the public API only, not the internal bits, so nothing will work just
yet.
This interface addition is for the Dell Canvas Totem tool, so let's go with
the same name because options like "Rotary" are too ambiguous.
The totem is a knob that can be placed on the surface, it provides us with
location and rotation data. The touch major/minor fields are filled in by the
current totem, but they're always the same size.
The totem exports BTN_0 as well, so let's add that to the debug-events output.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 6 Feb 2019 05:35:08 +0000 (15:35 +1000)]
test: force the litest feature enum to be 8 bytes or more
We've used up all bits, so let's extend the enum. (1 << 31) triggers an
assertion because we check for > LITEST_DEVICELESS. So we can't use that bit
without other changes.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer [Wed, 5 Jun 2019 00:27:37 +0000 (10:27 +1000)]
doc/api: more CSS styling