platform/upstream/libinput.git
3 years agogitlab CI: trigger the wayland website pipeline directly
Peter Hutterer [Tue, 27 Oct 2020 05:49:58 +0000 (15:49 +1000)]
gitlab CI: trigger the wayland website pipeline directly

See the documentation here:
https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#trigger-a-pipeline-when-an-upstream-project-is-rebuilt

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agodoc/user: update the timer offset warning for the new "too slow" message
Peter Hutterer [Thu, 22 Oct 2020 05:10:38 +0000 (15:10 +1000)]
doc/user: update the timer offset warning for the new "too slow" message

Related #533

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoevdev: reduce the "your system is slow" warning to 5 per hour
Peter Hutterer [Thu, 22 Oct 2020 04:59:03 +0000 (14:59 +1000)]
evdev: reduce the "your system is slow" warning to 5 per hour

Two cases where this can happen: system is currently slow and delaying events,
n which case we'll get a burst and it'll show up in the log files anyway. Or
the system is generally slow and we get these warnings all the time. In the
latter case, let's not spam the log.

Fixes #533

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: add quirk for Dell Precision 7550/7750 touchpad
Scott Jann [Mon, 3 Aug 2020 05:03:59 +0000 (00:03 -0500)]
quirks: add quirk for Dell Precision 7550/7750 touchpad

Signed-off-by: Scott Jann <sjann@knight-rider.org>
3 years agoquirks: switch the models with missing buttonpad to use the new attr
Peter Hutterer [Fri, 23 Oct 2020 01:01:57 +0000 (11:01 +1000)]
quirks: switch the models with missing buttonpad to use the new attr

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: add AttrInputPropEnable and Disable
Peter Hutterer [Fri, 23 Oct 2020 00:38:14 +0000 (10:38 +1000)]
quirks: add AttrInputPropEnable and Disable

The latter requires libevdev 1.10 but since that'll take a while to filter
into our various CI systems, let's make it conditional.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: add AttrEventCodeEnable as counterpoint to the disable one
Peter Hutterer [Thu, 22 Oct 2020 23:14:33 +0000 (09:14 +1000)]
quirks: add AttrEventCodeEnable as counterpoint to the disable one

Currently unused, but let's get this in because we may need this very soon for
broken tablets.

Enabling EV_ABS axes requires an absinfo struct - we default to a simple 0-1
axis range for those as the most generic option. Anything more custom will
need more custom treatment when we need it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoevdev: localize two variables during quirks handling
Peter Hutterer [Fri, 23 Oct 2020 02:54:54 +0000 (12:54 +1000)]
evdev: localize two variables during quirks handling

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoevdev: quirks_get_tuples can deal with a NULL quirks
Peter Hutterer [Fri, 23 Oct 2020 02:53:35 +0000 (12:53 +1000)]
evdev: quirks_get_tuples can deal with a NULL quirks

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools/debug-events: rework touch event printing
Peter Hutterer [Tue, 20 Oct 2020 23:06:16 +0000 (09:06 +1000)]
tools/debug-events: rework touch event printing

Previously, touch up events did not contain the slot number which makes the
logs ambiguous (e.g. see the one in #532). Fix that, and since doing so would
require extra conditions anyway get rid of the current with/without coords
function and just handle it all inside one function instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoPrint the event name when using an invalid event type
Peter Hutterer [Tue, 20 Oct 2020 23:01:32 +0000 (09:01 +1000)]
Print the event name when using an invalid event type

Where an invalid event type is passed to a function (e.g. a keyboard event to
a touch-related function) we used to only print the event code. That makes
debugging less obvious than necessary, so let's print the event name too.

This requires the function to be moved below event_type_to_str()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: fix the tip one axis test
Peter Hutterer [Thu, 8 Oct 2020 02:44:10 +0000 (12:44 +1000)]
test: fix the tip one axis test

Only worked because of axis smoothing mangling the coordinates - x is not
supposed to change where we're moving along a vertical line. And the same for
y and horizontal lines.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: fix the tablet relative calibration test
Peter Hutterer [Thu, 8 Oct 2020 02:27:37 +0000 (12:27 +1000)]
test: fix the tablet relative calibration test

This test only worked because axis smoothing mangled the coordinates, moving
from 5/10 to 10/20 cannot possibly have a dx of zero.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agofallback: expand the range of valid keys
Peter Hutterer [Tue, 6 Oct 2020 23:36:38 +0000 (09:36 +1000)]
fallback: expand the range of valid keys

The kernel has since added a bunch of keys in the range between
KEY_ONSCREEN_KEYBOARD and BTN_TRIGGER_HAPPY. Let's designate those as keys so
we handle them correctly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agogitlab CI: add git depth to the coverity job and save the artifacts
Peter Hutterer [Tue, 6 Oct 2020 06:43:52 +0000 (16:43 +1000)]
gitlab CI: add git depth to the coverity job and save the artifacts

A default git depth of 1 means git describe won't work, let's set it to
something high enough that we should always have at least one tag in the
history.

And save the artifacts after the coverity compilation, where the submission
fails for whatever reason we can just resubmit those manually without having
to rebuild the whole image locally.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools: color-group the debugging messages
Peter Hutterer [Tue, 6 Oct 2020 06:03:19 +0000 (16:03 +1000)]
tools: color-group the debugging messages

Alternate between two randomly-chosen colors for each batch of debug messages
to make it easier to visually group the two.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools: print the libinput_dispatch() counter for debugging messages
Peter Hutterer [Tue, 6 Oct 2020 05:35:44 +0000 (15:35 +1000)]
tools: print the libinput_dispatch() counter for debugging messages

The messages with priority DEBUG refer to the various internal state machines
updating, so it's useful to know when they did so. Let's count up every time
we trigger libinput_dispatch() so we know how the messages group together.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools: only call libinput_dispatch() once per poll
Peter Hutterer [Tue, 6 Oct 2020 05:04:08 +0000 (15:04 +1000)]
tools: only call libinput_dispatch() once per poll

This is a closer approximation of all callers anyway, and it makes it easier
to debug which events are handled per libinput_dispatch() call.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: fix force-press on Apple Magic Trackpad 2
Davide Depau [Sat, 12 Sep 2020 15:21:59 +0000 (17:21 +0200)]
quirks: fix force-press on Apple Magic Trackpad 2

The current defaults detect force presses as palm or thumb.
The values provided here work for a 99% accurate palm/thumb detection
and provide close zero false positives in my tests.

Signed-off-by: Davide Depau <davide@depau.eu>
3 years agodoc/api: fix the doxygen output handling
Peter Hutterer [Tue, 29 Sep 2020 07:33:36 +0000 (17:33 +1000)]
doc/api: fix the doxygen output handling

Using output: ['.'] broke ninja after ninja clean - it removed the whole
directory and thus the meson-generated configure_files (i.e. all the
doxygen sources we copied). ninja didn't know how to build those.

Fix this by rearranging the doxygen output to build into a different
directory now and setting the output to that. This doesn't exactly *fix*
things since that directory is no longer removed during ninja clean, but at
least the build no longer fails.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: Customize ALPS i2c touchpad palm detect pressure threshold
Kai-Chuan Hsieh [Mon, 28 Sep 2020 02:43:28 +0000 (10:43 +0800)]
quirks: Customize ALPS i2c touchpad palm detect pressure threshold

ALPS i2c touchpad support ABS_PRESSURE and ABS_MT_PRESSURE capabilities,
The default threshold 130 is too easy to across while finger movement.
It will cause the cursor stalled after the threshold is achieved, which
impacts user experience.
Test with some ALPS touchpads 0488:101A, 0488:101D, 0488:101E, the value
180 is good on those platforms.

Signed-off-by: Kai-Chuan Hsieh <kaichuan.hsieh@canonical.com>
3 years agodoc: update touchpad tapping state machine diagram
satrmb [Sun, 19 Jul 2020 21:46:01 +0000 (23:46 +0200)]
doc: update touchpad tapping state machine diagram

Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
3 years agotest: expand drag and multitap tests to tap with up to 3 fingers
satrmb [Wed, 1 Jul 2020 19:02:09 +0000 (21:02 +0200)]
test: expand drag and multitap tests to tap with up to 3 fingers

This covers the addition of two- and three-finger tap-and-drag,
as well as the fix for multitaps with more than one finger in later taps
and the multifinger enhancement to the tap ending drag-lock.

Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
3 years agotouchpad: fix multitaps with more than one finger while dragging is enabled
satrmb [Wed, 8 Jul 2020 11:32:43 +0000 (13:32 +0200)]
touchpad: fix multitaps with more than one finger while dragging is enabled

Also permits any number of fingers in the tap that terminates drag-lock.

Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
3 years agotouchpad: allow tap-and-drag for two-finger and three-finger taps
satrmb [Tue, 23 Jun 2020 22:20:57 +0000 (00:20 +0200)]
touchpad: allow tap-and-drag for two-finger and three-finger taps

This commit duplicates the tap states responsible for tap-and drag (TAPPED
and all DRAGGING* states) to cover two-finger and three-finger taps;
the code for the new states is shared with the existing machinery for
one-finger tap-and-drag.

Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
3 years agotouchpad: track the release of all fingers in a three-finger tap
satrmb [Wed, 1 Jul 2020 09:54:28 +0000 (11:54 +0200)]
touchpad: track the release of all fingers in a three-finger tap

This is in preparation for three-finger tap-and-drag, which will start from
a completed tap with no fingers down.

Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
3 years agotest: set the elan test device to always double up on tool bits
Peter Hutterer [Thu, 10 Sep 2020 23:54:24 +0000 (09:54 +1000)]
test: set the elan test device to always double up on tool bits

This is the device from
https://gitlab.freedesktop.org/libinput/libinput/-/issues/259 which sets
BTN_TOOL_PEN in addition to the real tool. Integrate this into the test device
proper so it always does this to catch various outliers.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: move the x/y coords a bit when testing tool type switches
Peter Hutterer [Thu, 10 Sep 2020 23:31:20 +0000 (09:31 +1000)]
test: move the x/y coords a bit when testing tool type switches

More realistic, there's no way you can get the x/y coordinates exactly the
same when moving the pen back into prox.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: auto-assign the tool type for tablet tests
Peter Hutterer [Thu, 10 Sep 2020 22:43:58 +0000 (08:43 +1000)]
test: auto-assign the tool type for tablet tests

The current tool type test merely sends BTN_TOOL_RUBBER (and others) manually
and expects libinput to do the right thing. This only tests the perfect
sequence but not test weird devices that behave differently on a tool type
switch.

So let's fix this by setting the tool type as property on the libinput test
device itself, and then emulate the tool switch through litest.
For special devices this will need extra callbacks, this is just the initial
framework to handle those buttons.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotablet: split a ternary condition into a normal if else for readability
Peter Hutterer [Thu, 10 Sep 2020 22:42:15 +0000 (08:42 +1000)]
tablet: split a ternary condition into a normal if else for readability

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: don't run the tool switch test on tablets that require forced prox out
Peter Hutterer [Thu, 10 Sep 2020 22:39:52 +0000 (08:39 +1000)]
test: don't run the tool switch test on tablets that require forced prox out

This test only worked because we're emulating events that the device never
sends that way. Just skip the test, devices that require a forced prox out
probably don't handle (or even have) erasers ayway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: remove duplicate tool type
Peter Hutterer [Thu, 10 Sep 2020 05:41:01 +0000 (15:41 +1000)]
test: remove duplicate tool type

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotablet: group the pressure related bit into a substruct
Peter Hutterer [Wed, 9 Sep 2020 02:54:32 +0000 (12:54 +1000)]
tablet: group the pressure related bit into a substruct

No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools/record: compress a set of printfs into one
Peter Hutterer [Thu, 17 Sep 2020 02:31:29 +0000 (12:31 +1000)]
tools/record: compress a set of printfs into one

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools/record: prefix the device list with a # character
Peter Hutterer [Thu, 17 Sep 2020 01:08:59 +0000 (11:08 +1000)]
tools/record: prefix the device list with a # character

Too many recordings end up with the device list at the top when users redirect
stderr and stdout to the recordings file. This breaks yaml parsing and
requires manual removal of the first few lines.

Avoid this by prefixing the lines with a command character, this way the yaml
stays correct.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotools/record: add --grab option
Peter Hutterer [Sun, 13 Sep 2020 21:58:04 +0000 (07:58 +1000)]
tools/record: add --grab option

Useful to record devices like power buttons, lid switches, etc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agocheck return value for libudev/udev_monitor_filter_add_match_subsystem_devtype
weizhixiang [Tue, 15 Sep 2020 08:03:44 +0000 (16:03 +0800)]
check return value for libudev/udev_monitor_filter_add_match_subsystem_devtype

Signed-off-by: weizhixiang <1138871845@qq.com>
3 years agoremove extra parameter in path_disable_device()
weizhixiang [Wed, 16 Sep 2020 05:13:34 +0000 (13:13 +0800)]
remove extra parameter in path_disable_device()

Signed-off-by: weizhixiang <1138871845@qq.com>
3 years agocheck return value for udev_new()
weizhixiang [Tue, 15 Sep 2020 02:23:38 +0000 (10:23 +0800)]
check return value for udev_new()

Signed-off-by: weizhixiang <1138871845@qq.com>
3 years agotools/replay: check the recorded udev properties against the local properties
Peter Hutterer [Wed, 9 Sep 2020 00:50:42 +0000 (10:50 +1000)]
tools/replay: check the recorded udev properties against the local properties

Where a device is replayed locally for testing, its udev properties should
match the recorded properties. Otherwise the testing results will not be
reliable.

The exception here is the device group which we currently don't set for
emulated devices and even if we did, it may intentionally differ anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: add a few compiler warnings and make them compiler-conditional
Peter Hutterer [Wed, 9 Sep 2020 01:53:12 +0000 (11:53 +1000)]
meson.build: add a few compiler warnings and make them compiler-conditional

These seem like a decent-enough set to have, only -Wlogical-op actually
produced a new warning.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotimer: fix a logic error checking the list node
Peter Hutterer [Wed, 9 Sep 2020 01:56:54 +0000 (11:56 +1000)]
timer: fix a logic error checking the list node

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: fix a logical error checking for A..Z
Peter Hutterer [Wed, 9 Sep 2020 01:55:57 +0000 (11:55 +1000)]
quirks: fix a logical error checking for A..Z

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: drop the separate cpp flags
Peter Hutterer [Wed, 9 Sep 2020 01:42:17 +0000 (11:42 +1000)]
meson.build: drop the separate cpp flags

All we care about for C++ is that we build.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: bump minimum version to 0.47
Peter Hutterer [Wed, 9 Sep 2020 01:26:25 +0000 (11:26 +1000)]
meson.build: bump minimum version to 0.47

It's been out for 2 years.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agodoc/api: drop the doxygen/graphviz version checks
Peter Hutterer [Wed, 9 Sep 2020 01:22:24 +0000 (11:22 +1000)]
doc/api: drop the doxygen/graphviz version checks

Both of our minimum versions were released in 2012, no more need to check.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: update libwacom dependency to 0.27 or newer
Peter Hutterer [Thu, 18 Jun 2020 04:32:56 +0000 (14:32 +1000)]
meson.build: update libwacom dependency to 0.27 or newer

Released in 2017, that's enough waiting

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoDrop the trailing slash from the HTTP_DOC_LINK
Peter Hutterer [Wed, 9 Sep 2020 01:17:12 +0000 (11:17 +1000)]
Drop the trailing slash from the HTTP_DOC_LINK

It makes the printf statements nicer and we ne don't use it on its own
anywhere anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: we no longer install a hwdb file, so drop the directory define
Peter Hutterer [Wed, 9 Sep 2020 01:14:41 +0000 (11:14 +1000)]
meson.build: we no longer install a hwdb file, so drop the directory define

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: drop a meson < 0.43 condition
Peter Hutterer [Wed, 9 Sep 2020 01:13:39 +0000 (11:13 +1000)]
meson.build: drop a meson < 0.43 condition

We require meson 0.45, so this can no longer be triggered.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agomeson.build: bump to 1.16.900
Peter Hutterer [Wed, 9 Sep 2020 01:29:02 +0000 (11:29 +1000)]
meson.build: bump to 1.16.900

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoremove extra paramenter in libinput-debug-events
weizhixiang [Fri, 4 Sep 2020 06:55:10 +0000 (14:55 +0800)]
remove extra paramenter in libinput-debug-events

Signed-off-by: weizhixiang <1138871845@qq.com>
3 years agotouchpad: ignore the ALPS jump to 4095/0
Peter Hutterer [Wed, 26 Aug 2020 01:59:47 +0000 (11:59 +1000)]
touchpad: ignore the ALPS jump to 4095/0

Some ALPS touchpad send the occasional 4095/0 event on slot 1 during
two-finger interaction before snapping back to the actual position of the
finger. There doesn't seem to be a specific heuristic to predict this so let's
hardcode those values. When detected, overwrite the current touch point with
the position of the last point. This will likely cause a small pointer jump
when the finger later moves to the real position but based on #492 this could
be a second later, so all bets are off anyway.

Fixes https://gitlab.freedesktop.org/libinput/libinput/-/issues/492

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agodoc: fix a wrongly named parameter
Peter Hutterer [Thu, 3 Sep 2020 23:54:49 +0000 (09:54 +1000)]
doc: fix a wrongly named parameter

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years ago[clang-tidy] do not use else after return
Rosen Penev [Thu, 27 Aug 2020 08:17:24 +0000 (01:17 -0700)]
[clang-tidy] do not use else after return

Found with readability-else-after-return

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years ago[clang-tidy] fix inconsistent declarations
Rosen Penev [Thu, 27 Aug 2020 08:00:31 +0000 (01:00 -0700)]
[clang-tidy] fix inconsistent declarations

Found with readability-inconsistent-declaration-parameter-name

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years ago[clang-tidy] remove pointless return in void function
Rosen Penev [Thu, 27 Aug 2020 07:58:40 +0000 (00:58 -0700)]
[clang-tidy] remove pointless return in void function

Found with readability-redundant-control-flow

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools: fix a replay exception when a recording has an empty quirks list
Peter Hutterer [Sun, 23 Aug 2020 22:31:21 +0000 (08:31 +1000)]
tools: fix a replay exception when a recording has an empty quirks list

Fixes https://gitlab.freedesktop.org/libinput/libinput/-/issues/520

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agogitlab CI: drop Fedora 30
Peter Hutterer [Thu, 20 Aug 2020 04:46:50 +0000 (14:46 +1000)]
gitlab CI: drop Fedora 30

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoquirks: add Google Pixelbook (eve)
Alyssa Ross [Sat, 15 Aug 2020 17:53:51 +0000 (17:53 +0000)]
quirks: add Google Pixelbook (eve)

Signed-off-by: Alyssa Ross <hi@alyssa.is>
3 years agolibinput 1.16.1 sandbox/jeon/upstream upstream_bkup_20220207 1.16.1
Peter Hutterer [Thu, 13 Aug 2020 02:05:39 +0000 (12:05 +1000)]
libinput 1.16.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: add two test devices for the false joystick labelling
Peter Hutterer [Wed, 12 Aug 2020 23:37:30 +0000 (09:37 +1000)]
test: add two test devices for the false joystick labelling

Two devices that were affected by the regression fixed with #517

Test devices taken from:
https://gitlab.freedesktop.org/libinput/libinput/-/issues/514
https://gitlab.freedesktop.org/libinput/libinput/-/issues/515

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoinclude: update event codes to v5.8
Peter Hutterer [Wed, 12 Aug 2020 23:59:10 +0000 (09:59 +1000)]
include: update event codes to v5.8

SW_MAX changed and the device_capability_nocaps_ignored test will fail on
older kernels. Change that test to use some other unhandled-by-libinput switch
code instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoevdev: remove now-misleading comment
Peter Hutterer [Wed, 12 Aug 2020 23:40:27 +0000 (09:40 +1000)]
evdev: remove now-misleading comment

libwacom has been removing ID_INPUT_JOYSTICK for years

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoRevert "evdev: fix the check for tablet vs joystick"
Peter Hutterer [Wed, 12 Aug 2020 23:40:03 +0000 (09:40 +1000)]
Revert "evdev: fix the check for tablet vs joystick"

There are a number of devices that have the ID_INPUT_JOYSTICK tag set by udev,
usually because of seemingly random event codes set. We cannot rely on
ID_INPUT_JOYSTICK to be accurate enough.

Fixes #517

This reverts commit eededbeb7faa2b6182c02a84884f54c1cb1d8a2a.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoAdd original MX Master to inverted-horizontal-wheel-having mice.
haarp [Tue, 11 Aug 2020 16:51:05 +0000 (16:51 +0000)]
Add original MX Master to inverted-horizontal-wheel-having mice.

with help from
https://github.com/libratbag/libratbag/blob/master/data/devices/\
logitech-MX-Master.device

Signed-off-by: haarp <main.haarp@gmail.com>
3 years agolibinput 1.16.0 1.16.0
Peter Hutterer [Mon, 3 Aug 2020 05:37:49 +0000 (15:37 +1000)]
libinput 1.16.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agotest: semi-fix the switch_suspend_with_touchpad test
Peter Hutterer [Mon, 3 Aug 2020 05:23:51 +0000 (15:23 +1000)]
test: semi-fix the switch_suspend_with_touchpad test

This used to do nothing, now at least it does the same thing as the
corresponding keyboard test. It merely tests the switch going on/off while a
touchpad is present, so short of an unexpected error message or a crash this
test doesn't actually test for any specific behavior.

Fixes #502

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agoFIX: typo on building documentation
Diego Abad A [Mon, 27 Jul 2020 13:37:10 +0000 (08:37 -0500)]
FIX: typo on building documentation

Signed-off-by: Diego Abad <dabada83@gmail.com>
3 years agolibinput 1.15.902 1.15.902
Peter Hutterer [Mon, 27 Jul 2020 05:36:24 +0000 (15:36 +1000)]
libinput 1.15.902

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agogitlab CI: build an rpm package to verify the installed file list
Peter Hutterer [Wed, 15 Jul 2020 00:02:20 +0000 (10:02 +1000)]
gitlab CI: build an rpm package to verify the installed file list

This is not a package intended for, it's a job to fail when we accidentally
change the file list. An rpmbuild job like this was what detected
f15da0f10890467712222410233c0bec9faefdd0.

The spec file resembles the Fedora one but has BuildRequires removed (we rely
on the container for that).

The same task could be achieved by keeping a file list and comparing the
installed tree but since I had the rpm spec file already, let's use that for
now.

This requires meson 0.55 which hit F32 yesterday.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
3 years agogitlab CI: remove a bunch of trailing spaces
Peter Hutterer [Wed, 22 Jul 2020 00:46:53 +0000 (10:46 +1000)]
gitlab CI: remove a bunch of trailing spaces

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotouchpad: disable jump detection on the Lenovo X1 Gen6 touchpad
Peter Hutterer [Sun, 12 Jul 2020 22:21:19 +0000 (08:21 +1000)]
touchpad: disable jump detection on the Lenovo X1 Gen6 touchpad

This touchpad has firmware that seems to buffer events. In the words of the
reporter:

  In usage, it feels like motions vary between smooth and choppy; slow
  movements are smooth and quick movements are choppy. It's as if the
  touchpad aggregates quick movements and sends one big movement instead
  of sending discrete events. To make the movement more natural, the
  events preceding the jump should be of higher magnitude and the jump
  less pronounced, but that's just not how the touchpad works, it seems.

In the actual event data this looks exactly like a pointer jump: small
movements, one big one, then small ones again. If we filter that large
movement out we prevent the user from moving quickly.

There's no way to detect this or work around this, so let's add a quirk that
disables the jump detection for this device.

Fixes #506

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoquirks: correct modalias for the Lenovo X1 Gen6
Peter Hutterer [Tue, 14 Jul 2020 22:11:17 +0000 (08:11 +1000)]
quirks: correct modalias for the Lenovo X1 Gen6

From commit 74e20e0ae01170fdc967e1a5cfeaea02ce57977a, bug report
https://bugzilla.redhat.com/show_bug.cgi?id=1565692

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoevdev: drop the check for tablet vs joystick
Peter Hutterer [Tue, 14 Jul 2020 03:04:25 +0000 (13:04 +1000)]
evdev: drop the check for tablet vs joystick

libwacom has been unsetting ID_INPUT_JOYSTICK for known tablets since 2015
(libwacom 0.12) so this comment is outdated. And the input-id udev builtin
never labels something as tablet *and* joystick. Which means: systemd sets
either tablet or joystick. For tablets that are known to libwacom the joystick
bit gets corrected and we only see the tablet bits.

Tablets unknown to libwacom remain as joysticks and are ignored but that's the
behavior we had anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoevdev: fix the check for tablet vs joystick
Peter Hutterer [Tue, 14 Jul 2020 02:22:48 +0000 (12:22 +1000)]
evdev: fix the check for tablet vs joystick

A device may have ID_INPUT_JOYSTICK and ID_INPUT_KEY in which case it would
still get added, despite being a joystick device. Make sure we check only the
tablet and joystick bits - where a device has the joystick bit set but not the
tablet one we ignore it.

Note that this check will get removed in the next commit anyway, it's just
here to make tracking the change easier in the history (and figuring out where
potential regressions come from).

Fixes #415

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agolibinput 1.15.901 1.15.901
Peter Hutterer [Tue, 14 Jul 2020 23:09:31 +0000 (09:09 +1000)]
libinput 1.15.901

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: rename the identifier in the 50-litest.conf
Peter Hutterer [Tue, 14 Jul 2020 23:36:30 +0000 (09:36 +1000)]
test: rename the identifier in the 50-litest.conf

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: fix the ABS_Y handling for the Protocol A test device
Peter Hutterer [Wed, 8 Jul 2020 23:50:49 +0000 (09:50 +1000)]
test: fix the ABS_Y handling for the Protocol A test device

No effect on the test results because we never use ABS_Y anyway for multitouch
devices.

Fixes #505

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: add missing linebreak in error message
Peter Hutterer [Wed, 8 Jul 2020 03:25:12 +0000 (13:25 +1000)]
tools: add missing linebreak in error message

Missing from a0643a9c9879e569c2a47b13f203561de8031cc0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: grab the device before any lid or tablet mode switches
Peter Hutterer [Fri, 3 Jul 2020 02:46:38 +0000 (12:46 +1000)]
test: grab the device before any lid or tablet mode switches

Putting an EVIOCGRAB on the device before sending those events means no-one
else sees those events - particularly upower. This means no-one else knows the
lid is on or off and thus we never blank the screen (or suspend/shut down but
those are inhibited anyway).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: store the list of open file descriptors in the litest context
Peter Hutterer [Fri, 3 Jul 2020 02:29:16 +0000 (12:29 +1000)]
test: store the list of open file descriptors in the litest context

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: use litest_destroy_context() for test-suite contexts
Peter Hutterer [Fri, 3 Jul 2020 00:47:13 +0000 (10:47 +1000)]
test: use litest_destroy_context() for test-suite contexts

Symmetrical to litest_create_context(), this allows us to store special data
in that context that we have access to during the tests.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: use context creation helper in the log tests
Peter Hutterer [Fri, 3 Jul 2020 00:49:32 +0000 (10:49 +1000)]
test: use context creation helper in the log tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: inhibit shutdown and suspend while the tests are running
Peter Hutterer [Fri, 3 Jul 2020 00:28:53 +0000 (10:28 +1000)]
test: inhibit shutdown and suspend while the tests are running

We test lid switch events which are independently handled by Upower. Let's
make sure nothing else can tell logind to suspend or shut down while we're
running.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: when running the test suite, start the debug-gui minimized
Peter Hutterer [Thu, 2 Jul 2020 23:55:37 +0000 (09:55 +1000)]
tools: when running the test suite, start the debug-gui minimized

This allows us to run the option parsing test without getting interrupted by a
million debug-gui windows popping up for half a second.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoAdd quirk for Lenovo ThinkPad X1 Tablet (1st Gen)
Ryo Munakata [Sun, 28 Jun 2020 20:47:45 +0000 (05:47 +0900)]
Add quirk for Lenovo ThinkPad X1 Tablet (1st Gen)

Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
4 years agogitlab CI: hook up coverity
Peter Hutterer [Thu, 2 Jul 2020 02:32:11 +0000 (12:32 +1000)]
gitlab CI: hook up coverity

This requires the COVERITY_SCAN_TOKEN as listed on the project settings page
in coverity itself. The intention here is to run this as a scheduled job, with
the pipeline schedule itself controlling the branch name etc. This way we can
keep the gitlab CI simple enough and just check for COVERITY_SCAN_TOKEN
itself.

This job shouldn't ever fail unless coverity is down (we'll fix that then),
the results of the coverity run are sent to the user that owns the the
scheduled pipeline, i.e. me.

Because coverity does not currently work on F32 (invalid GNU version number:
101), we force this to run on F31.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: drop custom scheduled handling, set FDO_FORCE_REBUILD instead
Peter Hutterer [Thu, 2 Jul 2020 22:50:54 +0000 (08:50 +1000)]
gitlab CI: drop custom scheduled handling, set FDO_FORCE_REBUILD instead

This is a leftover from pre-ci-templates days. Now that ci-templates handles
FDO_FORCE_REBUILD remove the custom handling and for the weekly rebuild just
set that variable to 1 in the scheduled pipeline itself.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: change the error message for missing tools
Peter Hutterer [Wed, 1 Jul 2020 00:43:16 +0000 (10:43 +1000)]
tools: change the error message for missing tools

Given that some people appear to not read until the "is not installed" part of
the error message, let's reduce the error message to just that part. This may
be confusing where a user mistypes the actual command but that happens rarely
compared to those that can't run libinput record because it's in a different
package.

Fixes #500

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agomeson.build: don't install the quirks in a further 'quirks' subdirectory
Peter Hutterer [Wed, 1 Jul 2020 00:52:10 +0000 (10:52 +1000)]
meson.build: don't install the quirks in a further 'quirks' subdirectory

install_subdir() by default also copies the 'quirks' directory, resulting in
the quirks files being in <datadir>/libinput/quirks/*.quirks as opposed to the
previous <datadir>/libinput/*.quirks.

Fixes 727dc44b045974699be53d07464867d3183c6eef

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: move the MR check to the deploy stage
Peter Hutterer [Tue, 30 Jun 2020 00:39:58 +0000 (10:39 +1000)]
gitlab CI: move the MR check to the deploy stage

This gives the developer enough time to file an MR after pushing a branch.
Having this run in the first stage means we get false positives because no MR
has been filed yet when the job is run.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc: don't ship the .doctree files with the documentation
Peter Hutterer [Thu, 25 Jun 2020 23:27:47 +0000 (09:27 +1000)]
doc: don't ship the .doctree files with the documentation

They're build artifacts and not needed for the actual documentation. Tell
sphinx-build to generate those files in a custom directory that's not part
of the documentation.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoAdd quirks file for Sony Vaio Laptop
John Rodriguez [Wed, 17 Jun 2020 13:33:08 +0000 (13:33 +0000)]
Add quirks file for Sony Vaio Laptop

The file contains pressure overrides for the VPCEG series.
Signed-off-by: John Rodriguez <johrodri@optonline.net>
4 years agomeson.build: use install_subdir() to install the quirks files
Peter Hutterer [Tue, 16 Jun 2020 23:43:54 +0000 (09:43 +1000)]
meson.build: use install_subdir() to install the quirks files

This removes the need to check whether the files were added in meson.build but
requires litest to traverse the source dir now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoReplace strneq() with strstartswith() for variable prefixes
Peter Hutterer [Tue, 16 Jun 2020 23:37:07 +0000 (09:37 +1000)]
Replace strneq() with strstartswith() for variable prefixes

Leaving in-place all those where we know the length of the prefix, but
replacing all those where we were calling strlen on the prefix.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoutils: add strstartswith() and strendswith() utility functions
Peter Hutterer [Tue, 16 Jun 2020 22:58:44 +0000 (08:58 +1000)]
utils: add strstartswith() and strendswith() utility functions

Modeled after Python's str.startswith() and str.endswith()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoquirks: fix Apple external trackpad v2 thresholds
Yariv Barkan [Sat, 13 Jun 2020 14:34:59 +0000 (17:34 +0300)]
quirks: fix Apple external trackpad v2 thresholds

The external Apple "Magic" trackpads, both the first and the second
generations, have pretty good built-in spurious touch filtering. For
these device models libinput's own filtering is not required. Using low
enough values such as 20:10 effectively disables libinput's filtering.

Signed-off-by: Yariv Barkan <oigevald+libinput@gmail.com>
4 years agogitlab CI: check merge requests for the allow collaboration checkbox
Peter Hutterer [Mon, 15 Jun 2020 10:50:29 +0000 (20:50 +1000)]
gitlab CI: check merge requests for the allow collaboration checkbox

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: use ci-fairy for commit message checks
Peter Hutterer [Mon, 15 Jun 2020 10:14:05 +0000 (20:14 +1000)]
gitlab CI: use ci-fairy for commit message checks

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>