platform/upstream/libinput.git
4 years agolibinput 1.15.0 upstream_bkup_20210106 upstream_work_20200225 1.15.0
Peter Hutterer [Fri, 3 Jan 2020 04:38:01 +0000 (14:38 +1000)]
libinput 1.15.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: indentation fix
Peter Hutterer [Fri, 3 Jan 2020 06:43:27 +0000 (16:43 +1000)]
test: indentation fix

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: add the test cases to the suite in the utils tests
Peter Hutterer [Fri, 3 Jan 2020 06:42:20 +0000 (16:42 +1000)]
test: add the test cases to the suite in the utils tests

oops...

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc/user: fix some HTML formatting
Peter Hutterer [Thu, 2 Jan 2020 22:25:41 +0000 (08:25 +1000)]
doc/user: fix some HTML formatting

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoquirks: fix horizontal scrolling for Logitech MX Master 2S on bluetooth
Björn Daase [Thu, 26 Dec 2019 00:02:03 +0000 (00:02 +0000)]
quirks: fix horizontal scrolling for Logitech MX Master 2S on bluetooth

It turns out that the MX Master 2S also has a different PID when connected
via bluetooth, causing horizontal scrolling to not work properly. Fix this,
by also adding it with the blueetooth PID (according to
https://github.com/libratbag/libratbag/blob/master/data/devices/logitech-MX-Master-2S.device
and in line with local testing) to the quirks file.

Signed-off-by: Björn Daase <bjoern@daase.net>
4 years agomeson.build: re-add missing trailing slash to the HTTP link
Peter Hutterer [Mon, 23 Dec 2019 00:57:53 +0000 (10:57 +1000)]
meson.build: re-add missing trailing slash to the HTTP link

Got lost in 61f81ec93e7ddfae79ce3d1e8069bfce97c6d6aa

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: update to latest ci-templates
Peter Hutterer [Wed, 11 Dec 2019 03:36:10 +0000 (13:36 +1000)]
gitlab CI: update to latest ci-templates

Rebuild all the images to make sure this still works fine.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoquirks: ignore mode switch button on Madcatz R.A.T.3 mouse
Anatolii Lishchynskyi [Wed, 11 Dec 2019 09:45:49 +0000 (09:45 +0000)]
quirks: ignore mode switch button on Madcatz R.A.T.3 mouse

Avoid stuck buttons, so window managers won't behave buggy, for example:
* You click on one window, but click is emulated in another one
* You hover cursor over button/link but see no feedback
Based on quirk for Cyborg mouse.

Signed-off-by: Anatolii Lishchynskyi <iamnotacake@protonmail.com>
4 years agogitlab CI: fix skopeo copy
Peter Hutterer [Wed, 11 Dec 2019 05:02:43 +0000 (15:02 +1000)]
gitlab CI: fix skopeo copy

skopeo doesn't handle the destination credentials correctly

See ci-templates commit 0a9bdd33a98f05af6761ab118b5074952242aab0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: use a minimal alpine image for the commit checks
Peter Hutterer [Wed, 11 Dec 2019 01:50:10 +0000 (11:50 +1000)]
gitlab CI: use a minimal alpine image for the commit checks

This runs at the same time as the other images being created so it'll fail if
the image itself doesn't exist yet. Since we only need pip here, let's use
alpine and install the two packages we need.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agolibinput 1.14.901 1.14.901
Peter Hutterer [Thu, 5 Dec 2019 03:50:17 +0000 (13:50 +1000)]
libinput 1.14.901

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add an explanatory comment why we're hardcoding master
Peter Hutterer [Wed, 4 Dec 2019 23:21:05 +0000 (09:21 +1000)]
gitlab CI: add an explanatory comment why we're hardcoding master

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add a local emulation mode to the gitlab CI script
Peter Hutterer [Wed, 4 Dec 2019 23:00:13 +0000 (09:00 +1000)]
gitlab CI: add a local emulation mode to the gitlab CI script

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: make the commit check errors more verbose and useful
Peter Hutterer [Wed, 4 Dec 2019 23:01:02 +0000 (09:01 +1000)]
gitlab CI: make the commit check errors more verbose and useful

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: don't try adding the upstream remote if it exists already
Peter Hutterer [Wed, 4 Dec 2019 22:46:47 +0000 (08:46 +1000)]
gitlab CI: don't try adding the upstream remote if it exists already

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoExpand the CODING_STYLE with an explanation of commit requirements
Peter Hutterer [Wed, 4 Dec 2019 22:16:09 +0000 (08:16 +1000)]
Expand the CODING_STYLE with an explanation of commit requirements

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agopad: add LIBINPUT_EVENT_TABLET_PAD_KEY for pad keys
Peter Hutterer [Thu, 17 Jan 2019 01:08:27 +0000 (11:08 +1000)]
pad: add LIBINPUT_EVENT_TABLET_PAD_KEY for pad keys

The Wacom Cintiq 24HD and later tablets send specific key events for
hardware/soft buttons. KEY_PROG1..KEY_PROG3 on earlier tablets,
KEY_CONTROLPANEL, KEY_ONSCREEN_DISPLAY, and KEY_BUTTONCONFIG on later tablets.
We ignore KEY_PROG1-3 because starting with kernel 5.4 older tablets will too
use the better-named #defines.

These differ from pad buttons as the key code in itself carries semantic
information, so we should pass them on as-is instead of mapping them to
meaningless 0-indexed buttons like we do on the other buttons.

So let's add a new event, LIBINPUT_EVENT_TABLET_PAD_KEY and the associated
functions to handle that case.

Pad keys have a fixed hw-defined semantic meaning and are thus not part of
a tablet mode group.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agopad: switch the button mapping to one that can handle keys or buttons
Peter Hutterer [Thu, 17 Jan 2019 01:49:39 +0000 (11:49 +1000)]
pad: switch the button mapping to one that can handle keys or buttons

No functional changes, we still use the same bits everywhere.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: debug-events: don't overrun the device array with too many arguments
Peter Hutterer [Wed, 4 Dec 2019 00:18:27 +0000 (10:18 +1000)]
tools: debug-events: don't overrun the device array with too many arguments

Only the --device option was checked for argument count, not the rest so it's
easy to overrun the array by specifying too many devices.

Except: this was a theoretical bug only, more than 64 arguments trigger
an assertion in the argv processing in tools/shared.c anyway. Let's drop the
debug-events limit to 60 devices so we can at least have a test for this.

Found by coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: run the meson script for the VMs as well
Peter Hutterer [Thu, 28 Nov 2019 03:02:48 +0000 (13:02 +1000)]
gitlab CI: run the meson script for the VMs as well

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: move the build instructions into a bash file
Peter Hutterer [Thu, 28 Nov 2019 01:35:54 +0000 (11:35 +1000)]
gitlab CI: move the build instructions into a bash file

Extending/debugging scripts in the gitlab CI directly is a pain, the
turnaround cycle is terrible. Let's move this into a shellscript that we can
just call directly.

Bonus side-effect: if we wanted to extend the script: set somewhere, this is
now much easier to override.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add meson to junit script
Peter Hutterer [Wed, 27 Nov 2019 23:35:29 +0000 (09:35 +1000)]
gitlab CI: add meson to junit script

This script was written by Emmanuele Bassi, copied from
https://gist.github.com/ebassi/e5296ec77ae9e0d3a33fd483b5613b09/

It converts meson test results into a junit file which we can then use to
display in the merge request GUI.

Note that as litest writes out junit files as well, some tests are reported
twice. Specifically: where litest fails the failure will be reported once
through litest itself and once by meson test. Oh well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: write our test case results out as junit xml files
Peter Hutterer [Tue, 26 Nov 2019 21:28:27 +0000 (07:28 +1000)]
test: write our test case results out as junit xml files

libcheck has the ability to write out XML files for test results, but
converting those into junit isn't ideal, for a number of reasons:
- junit xml is different to libcheck's xml, so not all data is available or
  useful. Especially with our litest wrappers around it.
- litest forking off tests means we have to wrap around everything anyway to
  avoid multiple forks writing to the same test file.

This is the minimal implementation since it's only user is likely the CI which
we control fairly tightly. So there are a few corners we can skip:
- no filename validation is performed by litest
- we write out a lot of junit xml files (one per litest fork). Rather than
  collating those we just rely on the CI to find the files.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: apply some basic validity checks on the commit messages
Peter Hutterer [Tue, 26 Nov 2019 05:37:28 +0000 (15:37 +1000)]
gitlab CI: apply some basic validity checks on the commit messages

Let's stop merge requests from users that don't set their git author name and
email address. Aside from it looking stange in the history it'll also make it
virtually impossible to ever find that user again should something important
arise in the future - especially if we switch off gitlab.

The rest is basic style, short subject lines, Signed-off-by lines and correct
formatting.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
[bentiss: use /usr/bin/env python3 as requested by the CI]
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
4 years agogitlab CI: rename the container_prep state to just "prep"
Peter Hutterer [Tue, 26 Nov 2019 05:34:21 +0000 (15:34 +1000)]
gitlab CI: rename the container_prep state to just "prep"

So we can shove other stuff in there without it looking strange.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: use multiple extends for the default artifact/build snippets
Peter Hutterer [Wed, 27 Nov 2019 21:52:21 +0000 (07:52 +1000)]
gitlab CI: use multiple extends for the default artifact/build snippets

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: use multiple extends over anchors for the upstream pull
Peter Hutterer [Wed, 27 Nov 2019 21:51:16 +0000 (07:51 +1000)]
gitlab CI: use multiple extends over anchors for the upstream pull

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add a global policy snippet for retries and interruptible
Peter Hutterer [Wed, 27 Nov 2019 05:38:36 +0000 (15:38 +1000)]
gitlab CI: add a global policy snippet for retries and interruptible

We want to retry if we have a system/timeout/stuck failure. And our jobs are
all interruptible, we want to cancel them when the branch has new commits.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: split all extends into multiple lines
Peter Hutterer [Wed, 27 Nov 2019 20:58:12 +0000 (06:58 +1000)]
gitlab CI: split all extends into multiple lines

No functional changes, this merely prepares the file for easier multiple
extends.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: print the libinput version in debug-events
Peter Hutterer [Wed, 27 Nov 2019 00:55:14 +0000 (10:55 +1000)]
tools: print the libinput version in debug-events

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: libinput-record: drop the explicit --multiple argument
Peter Hutterer [Tue, 26 Nov 2019 00:07:51 +0000 (10:07 +1000)]
tools: libinput-record: drop the explicit --multiple argument

If we want to record multiple events, let's just specify multiple event nodes.
No need for a specific extra argument here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: libinput-record: return the correct exit value on invalid usage
Peter Hutterer [Wed, 27 Nov 2019 00:33:43 +0000 (10:33 +1000)]
tools: libinput-record: return the correct exit value on invalid usage

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: libinput-record: bail out on invalid commandline arguments
Peter Hutterer [Mon, 25 Nov 2019 23:38:51 +0000 (09:38 +1000)]
tools: libinput-record: bail out on invalid commandline arguments

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: print stderr/stdout when a option test fails
Peter Hutterer [Mon, 25 Nov 2019 23:53:10 +0000 (09:53 +1000)]
tools: print stderr/stdout when a option test fails

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoAdjust for 64bit time_t for 32bit architectures
Peter Hutterer [Sun, 24 Nov 2019 01:23:56 +0000 (17:23 -0800)]
Adjust for 64bit time_t for 32bit architectures

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotouchpad: simplify tapping state machine by eliminating the multitap states
satrmb [Fri, 22 Nov 2019 14:37:53 +0000 (15:37 +0100)]
touchpad: simplify tapping state machine by eliminating the multitap states
Alternating between TAPPED and DRAGGING_OR_MULTITAP on repeated taps is enough, no need for more states.

4 years agotest: fix a multitap test expecting one tap too few
satrmb [Fri, 22 Nov 2019 14:36:24 +0000 (15:36 +0100)]
test: fix a multitap test expecting one tap too few
The problem was masked by a missing timeout, causing one up / down pair to not yet be enqueued before reading the queue.

4 years agotools: make debug-events accept multiple device nodes
Peter Hutterer [Mon, 25 Nov 2019 02:22:19 +0000 (12:22 +1000)]
tools: make debug-events accept multiple device nodes

For interaction between devices it's necessary to look at more than one device
at a time.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: replay: fix wrong timestamps for multiple device replay
Peter Hutterer [Mon, 25 Nov 2019 04:47:42 +0000 (14:47 +1000)]
tools: replay: fix wrong timestamps for multiple device replay

When multiple devices are recorded, the event times are offset from a global
baseline. Each device thus has a different offset for the first event. To
replay correctly, we must figure out the offset of the first event (across all
devices) and use that for all of them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoAdd Palm&ThumbPressureThreshold for the Spectre x360 15-ch0xx
Rasmus Thomsen [Mon, 25 Nov 2019 02:02:55 +0000 (02:02 +0000)]
Add Palm&ThumbPressureThreshold for the Spectre x360 15-ch0xx

Without this palm rejection doesn't work properly, making typing pretty
annoying.

4 years agocompletion: add the new libinput debug-tablet to the zsh completion files
Peter Hutterer [Tue, 19 Nov 2019 04:48:54 +0000 (14:48 +1000)]
completion: add the new libinput debug-tablet to the zsh completion files

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: print the tip state in the tablet debugging tool
Peter Hutterer [Fri, 8 Nov 2019 04:23:40 +0000 (14:23 +1000)]
tools: print the tip state in the tablet debugging tool

4 years agotools: add stylus button support
Peter Hutterer [Fri, 8 Nov 2019 04:13:03 +0000 (14:13 +1000)]
tools: add stylus button support

For the evdev events only a few hand-selected ones, all other ones are ignored
for now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: add a tablet debugging tool
Peter Hutterer [Tue, 5 Nov 2019 06:17:01 +0000 (16:17 +1000)]
tools: add a tablet debugging tool

Nothing sophisticated but easier to debug certain tablet oddities.
It shows a bar for each axis on the tablet (and the evdev axis) and prints
that relative to the axis range. This makes it easy to check if we do hit the
full range (especially for distance/pressure/tilt) and whether that matches
with what the device gives us.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: debug-events: expand timestamp prints to full millis
Peter Hutterer [Mon, 18 Nov 2019 22:39:55 +0000 (08:39 +1000)]
tools: debug-events: expand timestamp prints to full millis

Tens of millis is not quite enough in some cases.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: debug-events: offset timestamps by the first normal event
Peter Hutterer [Mon, 11 Nov 2019 05:47:10 +0000 (15:47 +1000)]
tools: debug-events: offset timestamps by the first normal event

Start counting the timestamps from the first time we get something off the
actual fd. This makes it easier to match up timestamps with the output from
libinput record.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: libinput-record: expand the evdev event value to 7 digits
Peter Hutterer [Fri, 8 Nov 2019 01:34:01 +0000 (11:34 +1000)]
tools: libinput-record: expand the evdev event value to 7 digits

MSC_TIMESTAMPS need 7 digits so let's make sure everything is nicely aligned

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc: remove the direct link to the various state diagrams
Peter Hutterer [Mon, 11 Nov 2019 05:15:30 +0000 (15:15 +1000)]
doc: remove the direct link to the various state diagrams

draw.io is playing up with old files and sending me into a redirect loop.
Duplicating files works but that changes the links. So to avoid dead links,
let's just remove the direct link and let anyone who cares enough about it ask
me.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: allow for substring matching in the various --filter- arguments
Peter Hutterer [Mon, 11 Nov 2019 04:37:43 +0000 (14:37 +1000)]
test: allow for substring matching in the various --filter- arguments

A unique substring of a test/group/device should be enough to filter, even
without surrounding it with asterisks.

This allows for things like --filter-device=t440 as opposed to the previous
--filter-device="*t440*".

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc: updates to the tap state machine
Peter Hutterer [Mon, 11 Nov 2019 04:17:13 +0000 (14:17 +1000)]
doc: updates to the tap state machine

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotouchpad: don't allow for multifinger tapping after a move
Peter Hutterer [Fri, 8 Nov 2019 05:16:42 +0000 (15:16 +1000)]
touchpad: don't allow for multifinger tapping after a move

In the current implementation, movements > threshold and timeouts usually move
to HOLD state and continue from there. Where a finger is lifted, we go back
up the diagram into the previous finger count's HOLD state.

The side-effect of this is that a tap of a finger can be counted as tap even
after a movement:

- two fingers down, move to scroll, hold down
- third finger down, third finger up

This sequence triggers an erroneous three-finger tap. Once the motion
threshold is hit by any touch, no finger must trigger 2/3 finger tap events
while any touch is down.

The false tap is only triggered where the new finger can execute a tap without
any other finger changing any property. This can be triggered on the
reporter's Dell Precision 5520 but on most other touchpads, a new finger down
will trigger slight movement, pressure or touch size updates and thus the bug
cannot be triggered.

Fixes #382

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: fix a pressure test to movement during tap
Peter Hutterer [Mon, 11 Nov 2019 04:20:57 +0000 (14:20 +1000)]
test: fix a pressure test to movement during tap

The motion event here was intended to offset the light pressure from the
extended touch down. This also causes motion past the tap threshold and won't
work with a future patch.

Make the touch "real" by simply plaing a normal movement in the current
position - the kernel will filter and we'll just update the pressure.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoFix typo in zsh completion
Philipp Fischbeck [Thu, 14 Nov 2019 20:28:00 +0000 (20:28 +0000)]
Fix typo in zsh completion

4 years agomeson.build: drop the explicit -g flag
Peter Hutterer [Wed, 6 Nov 2019 01:48:49 +0000 (11:48 +1000)]
meson.build: drop the explicit -g flag

Let's rely on meson to set this for us.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: work around collapsed multiline commands in the rebuild check
Peter Hutterer [Mon, 28 Oct 2019 23:39:39 +0000 (09:39 +1000)]
gitlab CI: work around collapsed multiline commands in the rebuild check

Multiline commands are currently collapsed with no way of uncollapsing them
(https://gitlab.com/gitlab-org/gitlab-runner/issues/3392), so we never see the
skopeo invocations. Work around this by touching a file when scheduled and
using that to break up the conditions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: allow the qemu-prep job to fail, runners are unreliable
Peter Hutterer [Mon, 28 Oct 2019 23:16:50 +0000 (09:16 +1000)]
gitlab CI: allow the qemu-prep job to fail, runners are unreliable

The qemu jobs themselves already have this tag so let's add it to the
container prep itself too. Unfortunately the CI doesn't have a conditional
allow-failure (ideally we want retry's stuck_or_timeout_failure condition).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: remove the hardcoded four-job valgrind test run
Peter Hutterer [Tue, 5 Nov 2019 00:54:32 +0000 (00:54 +0000)]
test: remove the hardcoded four-job valgrind test run

Make this dependent on the number of processes too.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: drop a now-obsolete test
Peter Hutterer [Tue, 5 Nov 2019 00:12:08 +0000 (00:12 +0000)]
test: drop a now-obsolete test

As of d20bbfa5cb56e8bc we handle the direct tool switch correctly so there's
no more warning. Which means testing for the warning is pointless.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add diffutils to the Fedora RPMs
Peter Hutterer [Mon, 4 Nov 2019 23:32:34 +0000 (23:32 +0000)]
gitlab CI: add diffutils to the Fedora RPMs

Needed for the symbols leak test.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotablet: handle a direct tool switch correctly
Peter Hutterer [Wed, 30 Oct 2019 05:23:24 +0000 (15:23 +1000)]
tablet: handle a direct tool switch correctly

Fixes #259

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotablet: add a helper function to get the current tool
Peter Hutterer [Wed, 25 Sep 2019 23:59:47 +0000 (09:59 +1000)]
tablet: add a helper function to get the current tool

No functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: debug-gui: show pressure/distance as vertical bar
Peter Hutterer [Thu, 31 Oct 2019 22:20:07 +0000 (08:20 +1000)]
tools: debug-gui: show pressure/distance as vertical bar

Both of these are normalized so let's draw a bar that shows the values
accordingly. This makes it a lot easier to check whether pressure values go to
the maximum, etc.

A little extra square is shown whenever the tip is logically down.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: split the qemu test runs up into multiple jobs
Peter Hutterer [Fri, 25 Oct 2019 01:09:50 +0000 (11:09 +1000)]
gitlab CI: split the qemu test runs up into multiple jobs

The tests are split by topic but have varying runtime. Specifically, the
longest test (touchpad) takes ~170s whereas many of the others can take less
than a second. Splitting them all up into separate VMs costs too much in
startup time so here's the middle ground of some custom grouping to make the
tests roughly run the same time.

This list will need to be manually maintained but given that groups are rarely
added anyway this shouldn't be too much of a maintenance burden. And bonus:
since the kvm tests often fail due to timing issues, re-running one is
significantly faster now.

This shaves about 8min of the CI run

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: fix an indentation issue
Peter Hutterer [Wed, 30 Oct 2019 23:12:59 +0000 (09:12 +1000)]
gitlab CI: fix an indentation issue

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: remove a useless assignment
Peter Hutterer [Wed, 30 Oct 2019 00:43:18 +0000 (10:43 +1000)]
test: remove a useless assignment

copy/paste error that makes coverity unhappy. This is the code to correctly
release all touches and the buttons have already been processed above - no
need to reassign here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: silence a coverity warning
Peter Hutterer [Wed, 30 Oct 2019 00:38:02 +0000 (10:38 +1000)]
test: silence a coverity warning

Coverity complains that we call libinput_event_destroy() twice on the variable
(once in and once just outside the condition). This is technically correct but
never true because we always break the loop early for the touch up/frame events.
Let's just reset the pointers so coverity is happy.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: remove some useless code triggering a coverity warning
Peter Hutterer [Wed, 30 Oct 2019 00:29:46 +0000 (10:29 +1000)]
test: remove some useless code triggering a coverity warning

x/y assigned but never used. Dropping those few lines gets rid of the warning
and checks the coordinates correctly now too.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: drop the specific libinput measure tools from the libinput man page
Peter Hutterer [Tue, 29 Oct 2019 01:05:59 +0000 (11:05 +1000)]
tools: drop the specific libinput measure tools from the libinput man page

libinput measure lists them all anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotools: correct libinput measure reference to the tap man page
Peter Hutterer [Tue, 29 Oct 2019 01:07:32 +0000 (11:07 +1000)]
tools: correct libinput measure reference to the tap man page

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotest: make the test jobs dependent on the number of processors
Peter Hutterer [Mon, 28 Oct 2019 05:12:22 +0000 (15:12 +1000)]
test: make the test jobs dependent on the number of processors

Let's hope the test suite is more successful on puny VMs that way.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agolibinput-list-devices: make paragraph about different settings terser
Konstantin Kharlamov [Sat, 26 Oct 2019 20:14:42 +0000 (23:14 +0300)]
libinput-list-devices: make paragraph about different settings terser

Changes are:

1. "configuration options" is same as "options"
2. The clarification "e.g. scrolling" doesn't clarify anything because a
user don't necessarily knows there're "2-finger scroll" and
"edge-scroll"; and even if they do, they can imagine the settings to be
represented by "0" and "1" values, which then begs a question: why
aren't all "Enabled/Disabled" settings are prefixed with "*" too.
   Instead, replace the vague `multiple different settings` with more
specific `more settings than "enabled/disabled"`.
3. "ones" is shorter than "settings" and makes sure a user haven't lost
context.

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
4 years agolibinput-list-devices: be more explicit about only listing defaults
Konstantin Kharlamov [Sat, 26 Oct 2019 20:10:59 +0000 (23:10 +0300)]
libinput-list-devices: be more explicit about only listing defaults

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
4 years agoquirks: add RollerMouse Free 3 for double-click fix
Sven Slootweg [Sat, 26 Oct 2019 16:04:05 +0000 (16:04 +0000)]
quirks: add RollerMouse Free 3 for double-click fix

4 years agogitlab CI: switch to Ubuntu 19.10
Peter Hutterer [Fri, 25 Oct 2019 00:22:28 +0000 (10:22 +1000)]
gitlab CI: switch to Ubuntu 19.10

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: switch to Fedora 31
Peter Hutterer [Fri, 25 Oct 2019 00:22:01 +0000 (10:22 +1000)]
gitlab CI: switch to Fedora 31

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoudev: fix potential memory leak for the phys string
Peter Hutterer [Thu, 24 Oct 2019 04:27:37 +0000 (14:27 +1000)]
udev: fix potential memory leak for the phys string

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agofallback: fix a coverity warning
Peter Hutterer [Thu, 24 Oct 2019 04:10:47 +0000 (14:10 +1000)]
fallback: fix a coverity warning

Value stored to 'rect' during its initialization is never read

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc/user: add a faq entry about the pointer acceleration "issue"
Peter Hutterer [Tue, 22 Oct 2019 02:10:03 +0000 (12:10 +1000)]
doc/user: add a faq entry about the pointer acceleration "issue"

Despite many bits wasted on reddit, phoronix, lwn etc. no-one seems interested
in actually fixing this for their device, so let's at least add a FAQ entry.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc/user: reword one of the FAQ entries to no tmake it read outdated
Peter Hutterer [Tue, 22 Oct 2019 02:04:04 +0000 (12:04 +1000)]
doc/user: reword one of the FAQ entries to no tmake it read outdated

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab CI: add an alpine image
Peter Hutterer [Tue, 15 Oct 2019 06:03:46 +0000 (16:03 +1000)]
gitlab CI: add an alpine image

Alpine uses musl, eudev and elogind, so it's useful to build on that to get
those covered.

Notably, ninja test is not run because the litest-selftest will fail for
tcase_add_exit_test() and tcase_add_test_raise_signal(). This may be due to
some missing bits in musl or check not using the feature test macros, etc.
Someone with time and motivation to have this actually work on musl can figure
that out.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoquirks: make the diff call for the meson check more portable
Peter Hutterer [Tue, 15 Oct 2019 09:51:35 +0000 (19:51 +1000)]
quirks: make the diff call for the meson check more portable

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc/user: actually link to the API documentation
Peter Hutterer [Thu, 17 Oct 2019 09:50:23 +0000 (19:50 +1000)]
doc/user: actually link to the API documentation

a6082d3a6f only included the base link

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc/user: add a link to the API documentation in the TOC
Peter Hutterer [Thu, 17 Oct 2019 03:53:07 +0000 (13:53 +1000)]
doc/user: add a link to the API documentation in the TOC

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agomeson: move HTTP doc url generation to here
Peter Hutterer [Thu, 17 Oct 2019 03:39:23 +0000 (13:39 +1000)]
meson: move HTTP doc url generation to here

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoAdd a scroll button lock feature
Peter Hutterer [Wed, 20 Mar 2019 00:56:51 +0000 (10:56 +1000)]
Add a scroll button lock feature

Scroll button locking is an accessibility feature. When enabled, the scroll
button does not need to be held down, the first click holds it logically down,
to be released on the second click of that same button.

This is implemented as simple event filter, so we still get the same behavior
from the emulated logical button, i.e. a physical double click results in a
single logical click of that button provided no scrolling was triggered.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agodoc: fix sentence
Luflosi [Wed, 16 Oct 2019 12:58:21 +0000 (14:58 +0200)]
doc: fix sentence

Signed-off-by: Luflosi <luflosi@luflosi.de>
4 years agofallback: don't send a single-touch motion if we just sent a begin
Peter Hutterer [Wed, 16 Oct 2019 02:50:44 +0000 (12:50 +1000)]
fallback: don't send a single-touch motion if we just sent a begin

Any touch down event will also provide motion data, but we must not send a
motion event for those in the same frame as the down event.

Fixes #375

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoFix horizontal scrolling for Logitech MX Master 3 on bluetooth
Balazs Endresz [Tue, 15 Oct 2019 08:50:07 +0000 (10:50 +0200)]
Fix horizontal scrolling for Logitech MX Master 3 on bluetooth

4 years agoCI: UI improvements
Peter Hutterer [Mon, 14 Oct 2019 03:40:47 +0000 (13:40 +1000)]
CI: UI improvements

This should not change the overall time, but allows for a nicer
UI when looking at the pipelines:

* first "check" icon is the container_prep stage
* second icon is all of the variations of builds
* third is the full test suite in the VM
* forth is the distribution specifics
* last one is the deploy

This allows to see which step fails from the UI instead of having
a lengthy list of jobs all in the same column.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
4 years agogitlab CI: run the valgrind test suite as well
Peter Hutterer [Mon, 14 Oct 2019 03:17:01 +0000 (13:17 +1000)]
gitlab CI: run the valgrind test suite as well

Separate instance so we can speed things up a bit.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotouchpad: use the same speed for scrolling as the baseline of the accel curve
Peter Hutterer [Mon, 14 Oct 2019 01:23:30 +0000 (11:23 +1000)]
touchpad: use the same speed for scrolling as the baseline of the accel curve

Scrolling and gestures use unaccelerated motion. The idea behind it was that
at least for the default speed setting of 0, the accelerated speed and
unaccelerated speed are identical where meaningful.

The touchpad speed curve has a plateau for 'normal' speeds (i.e. not very slow
and not very fast) where the acceleration factor is constant. This is the
reference factor that the unaccelerated motion should use as well.

Since the touchpad acceleration rework in d6e5313497 the reference factor is
0.9 * TP_MAGIC_SLOWDOWN (previously the factor was 1.0 * TP_MAGIC_SLOWDOWN)
and scroll motion is thus 10% faster than the pointer movement at the default
speeds. Let's fix this and let the two match up.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agoLIBINPUT_EVENT_TABLET_BUTTON doesn't exist, use LIBINPUT_EVENT_TABLET_PAD_BUTTON
Aleix Pol [Fri, 11 Oct 2019 00:37:39 +0000 (02:37 +0200)]
LIBINPUT_EVENT_TABLET_BUTTON doesn't exist, use LIBINPUT_EVENT_TABLET_PAD_BUTTON

4 years agomeson.build: fix building as a subproject
Tadeo Kondrak [Mon, 7 Oct 2019 07:04:21 +0000 (01:04 -0600)]
meson.build: fix building as a subproject

4 years agoutil-time: include linux/input.h
Peter Hutterer [Fri, 4 Oct 2019 21:10:43 +0000 (07:10 +1000)]
util-time: include linux/input.h

struct timeval isn't defined in time.h, at least not on musl. And since we
need that value for struct input_events, let's include the header for that
struct. That'll sort out the includes for free.

Fixes #371

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agogitlab-ci: use one sha1 instead of duplicates
Benjamin Tissoires [Fri, 4 Oct 2019 19:03:50 +0000 (15:03 -0400)]
gitlab-ci: use one sha1 instead of duplicates

because we can

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
4 years agogitlab-ci: use qemu to run the full test suite
Benjamin Tissoires [Tue, 6 Aug 2019 10:40:44 +0000 (12:40 +0200)]
gitlab-ci: use qemu to run the full test suite

We currently allow the stage to fail, but at least,
we can make use of it.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
4 years agoAdded quirk for Lenovo ThinkPad X200 Tablet.
yy [Fri, 4 Oct 2019 17:07:34 +0000 (19:07 +0200)]
Added quirk for Lenovo ThinkPad X200 Tablet.

4 years agoFixed horizontal scrolling on Logitech MX Master 2S/3
Jakub Schmidtke [Mon, 30 Sep 2019 23:34:45 +0000 (23:34 +0000)]
Fixed horizontal scrolling on Logitech MX Master 2S/3

Logitech MX Master 2S and 3 by default use natural scrolling
for the horizontal scroll wheel, while the main wheel
uses traditional mode. This change inverts the default
direction of horizontal scrolling.

4 years agotest: fix a coverity warning about an unused value
Peter Hutterer [Mon, 30 Sep 2019 01:17:17 +0000 (11:17 +1000)]
test: fix a coverity warning about an unused value

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
4 years agotablet: Improve forced prox out behavior.
John Chadwick [Sun, 29 Sep 2019 23:35:09 +0000 (23:35 +0000)]
tablet: Improve forced prox out behavior.

Some graphics tablets (most or all Wacom, for example) do not emit
proximity out events when the tablet pen goes out of range. To
compensate for this, libinput synthesizes proximity out events when no
events are received for a certain period of time. Unfortunately, on some
tablets, this is fairly failure prone when moving the pen slowly. As a
workaround, this patch causes libinput to avoid synthesizing proximity
out events when the pen is still in contact with the tablet pad, as
defined by the TABLET_TOOL_IN_CONTACT status.