platform/upstream/libinput.git
5 years agotest: update valgrind suppressions for a glib leak
Peter Hutterer [Wed, 1 May 2019 02:02:42 +0000 (12:02 +1000)]
test: update valgrind suppressions for a glib leak

Fixed upstream, but it's not in F30 yet so the valgrind tests fail there.
https://gitlab.gnome.org/GNOME/glib/merge_requests/338

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotouchpad: rotate the touch part of tablets
Peter Hutterer [Tue, 30 Apr 2019 04:52:28 +0000 (14:52 +1000)]
touchpad: rotate the touch part of tablets

Tablets in left-handed mode are rotated, so we need to rotate the touchpad
part of them too. This doesn't affect all tablets though, some of them are
symmetrical and the left-handed mode merely changes the button order around
(some of the earlier Bamboos). So we rely on libwacom to tell us which device
must be rotated.

The rotation itself is done on the input coordinate itself as we get it. This
way any software buttons, palm zones, etc. are automatically handled by rest
of the code.

Fixes #274

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: use identifiable shortnames for the Intuos5 devices
Peter Hutterer [Tue, 30 Apr 2019 05:27:35 +0000 (15:27 +1000)]
test: use identifiable shortnames for the Intuos5 devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: move tablet tool change processing to tablet_flush
Peter Hutterer [Fri, 5 Apr 2019 04:58:56 +0000 (14:58 +1000)]
tablet: move tablet tool change processing to tablet_flush

Unlike virtually everything else, the tablet tool was processed at the time
the event was read rather than when the subsequent EV_SYN came in. This causes
difficulties with tablets that send the wrong BTN_TOOL_PEN events.

Moving the tool change processing to tablet_flush() makes the injection of the
BTN_TOOL_PEN event a lot easier, simply flipping the matching bit does the
job. It also makes it easier to ignore duplicate tool updates like we've seen
in #259.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoCI: update arch package list
Sebastian Krzyszkowiak [Sun, 14 Apr 2019 12:40:34 +0000 (14:40 +0200)]
CI: update arch package list

Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
5 years agoevdev-mt-touchpad-buttons: use a model quirk instead of vendor ID to identify Apple...
Sebastian Krzyszkowiak [Thu, 11 Apr 2019 22:59:19 +0000 (00:59 +0200)]
evdev-mt-touchpad-buttons: use a model quirk instead of vendor ID to identify Apple devices

Recent Apple touchpads use a proper Bluetooth vendor ID assigned to Apple instead of the USB one,
so this code would have to check for two vendor IDs and their udev types. However, we already
have that matching done via models in quirks, so let's just use that.

Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
5 years agoquirks: add a new Apple vendor ID for Bluetooth devices
Sebastian Krzyszkowiak [Thu, 11 Apr 2019 22:55:26 +0000 (00:55 +0200)]
quirks: add a new Apple vendor ID for Bluetooth devices

Also, set a default AttrTouchSizeRange for Apple touchpads via Bluetooth
to match the one from the USB rule.

Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
5 years agotest: abort when no default value is available for an axis
Jason Gerecke [Wed, 10 Apr 2019 19:41:40 +0000 (12:41 -0700)]
test: abort when no default value is available for an axis

And fix the cases where the default value isn't filled in correctly

Issue found because of the following ubsan error:
../src/evdev-tablet.c:182:19: runtime error: signed integer overflow: 0 - -214783648 cannot be represented in type 'int'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: Clean up memory leaks
Jason Gerecke [Thu, 11 Apr 2019 03:17:02 +0000 (13:17 +1000)]
test: Clean up memory leaks

A few leaks in the test code were found when running linput-test-suite
with the -fsanitize=address option enabled. Clean up these leaks so that
we can more clearly see real issues.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: Fix ubsan runtime error
Jason Gerecke [Wed, 10 Apr 2019 16:55:25 +0000 (09:55 -0700)]
fallback: Fix ubsan runtime error

Running libinput-test-suite with -fsanitize=undefined highlights the two
following errors. Force C to realize we want an unsigned result by making
the '1' literal unsigned.

../src/evdev-fallback.c:314:22 runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
../src/evdev-fallback.c:377:24 runtime error: left shift of 1 by 31 places cannot be represented in type 'int'

v2: use bit() instead of manual shift 1U<<1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add proximity timeout delay to a tablet test
Peter Hutterer [Thu, 11 Apr 2019 04:19:49 +0000 (14:19 +1000)]
test: add proximity timeout delay to a tablet test

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: add a debugging message when we force a proximity out
Peter Hutterer [Thu, 11 Apr 2019 03:16:02 +0000 (13:16 +1000)]
tablet: add a debugging message when we force a proximity out

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: tighten the test for tablet button releases on proximity out
Peter Hutterer [Mon, 8 Apr 2019 00:17:23 +0000 (10:17 +1000)]
tablet: tighten the test for tablet button releases on proximity out

Make sure we check the expected sequence more stringent and change the x/y
coordinates on prox in so the kernel doesn't filter them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: reduce some touch sequences to avoid tablet timeouts
Peter Hutterer [Sun, 7 Apr 2019 22:50:41 +0000 (08:50 +1000)]
test: reduce some touch sequences to avoid tablet timeouts

We need to keep those sequences to fall below the tablet proximity timeout.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: fix the hid4800 device's prox out serial number
Peter Hutterer [Fri, 5 Apr 2019 04:24:47 +0000 (14:24 +1000)]
test: fix the hid4800 device's prox out serial number

The test device sent a serial of 0. That would end up creating a new tool in
libinput which is wrong. Let's hope this was just an error in creating the
test device, if the device really sends that sequence, we're in trouble.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: filter BTN_TOOL_PEN correctly for the mouse tool tests
Peter Hutterer [Fri, 5 Apr 2019 05:49:31 +0000 (15:49 +1000)]
test: filter BTN_TOOL_PEN correctly for the mouse tool tests

With the previous code we'd set both tools simultaneously which isn't allowed.
It only worked because the second tool set was the one we cared about.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: actually filter events when writing to udev
Peter Hutterer [Fri, 5 Apr 2019 05:57:48 +0000 (15:57 +1000)]
test: actually filter events when writing to udev

Don't write events to the uinput device if we disabled that specific event
code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: fix waiting for the tool to quit in the options test
Peter Hutterer [Fri, 5 Apr 2019 01:02:46 +0000 (11:02 +1000)]
tools: fix waiting for the tool to quit in the options test

Just use the wait() timeout directly instead of sleep and kill. This allows us
to have a longer timeout and still get fast handling where the tool
immediately exits, but less failure when running on busy machines.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: use American spelling for 'unrecognized'
Peter Hutterer [Fri, 5 Apr 2019 00:46:56 +0000 (10:46 +1000)]
tools: use American spelling for 'unrecognized'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: fix some code alignment
Peter Hutterer [Fri, 5 Apr 2019 04:51:42 +0000 (14:51 +1000)]
tablet: fix some code alignment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: add missing linebreak after error message
Peter Hutterer [Thu, 4 Apr 2019 23:35:41 +0000 (09:35 +1000)]
tablet: add missing linebreak after error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: always enable the proximity out quirk
Peter Hutterer [Thu, 4 Apr 2019 04:49:47 +0000 (14:49 +1000)]
tablet: always enable the proximity out quirk

Don't require a quirk update, just enable this by default for all tablets. If
we get a proximity out event at the right time, the quirk is disabled for that
tablet for the rest of its lifetime. And it's virtually impossible to have a
false positive here anyway - you cannot hold the pen still enough to not
trigger events for 50ms.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: speed up the TrackPoint on the IBM USB UltraNav keyboard a bit
Lubomir Rintel [Fri, 8 Mar 2019 14:26:21 +0000 (15:26 +0100)]
quirks: speed up the TrackPoint on the IBM USB UltraNav keyboard a bit

By default it's unbearably slow.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
5 years agotablet: log a bug when a tablet switches between tools directly
Peter Hutterer [Mon, 1 Apr 2019 05:29:37 +0000 (15:29 +1000)]
tablet: log a bug when a tablet switches between tools directly

We expect the kernel to transition properly for us, e.g. BTN_TOOL_PEN goes to
0, BTN_TOOL_ERASER goes to 1. Two cases have surfaced recently where this
doesn't happen and debugging this takes time - so let's warn about it to make
it obvious.

Example 1: https://github.com/linuxwacom/libwacom/issues/70
Example 2: https://gitlab.freedesktop.org/libinput/libinput/issues/259

This is just a warning, nothing more. We should just handle that case
accordingly but that requires more effort.

Fixes #260

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotablet: move the current tool bits into a substruct
Peter Hutterer [Mon, 1 Apr 2019 05:10:55 +0000 (15:10 +1000)]
tablet: move the current tool bits into a substruct

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoEnable ModelTabletNoProximityOut quirk on HP Spectre 13-ap0xxx
Ian Douglas Scott [Wed, 3 Apr 2019 02:54:47 +0000 (19:54 -0700)]
Enable ModelTabletNoProximityOut quirk on HP Spectre 13-ap0xxx

Ideally, this should probably match a broader range of devices. But I'm
not sure what it should specify.

Fixes #261

5 years agodoc/api: minor style changes
Peter Hutterer [Tue, 2 Apr 2019 23:39:25 +0000 (09:39 +1000)]
doc/api: minor style changes

Reduces the size of the group name in the title.

Removes the background image from the navpath where it appears (file reference
page for example).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/api: add since tags to all functions after 1.0
Peter Hutterer [Tue, 2 Apr 2019 23:21:52 +0000 (09:21 +1000)]
doc/api: add since tags to all functions after 1.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: drop some unnecessary extern declarations
Peter Hutterer [Mon, 1 Apr 2019 05:20:20 +0000 (15:20 +1000)]
test: drop some unnecessary extern declarations

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: bump to 1.13.900
Peter Hutterer [Mon, 1 Apr 2019 06:00:10 +0000 (16:00 +1000)]
meson.build: bump to 1.13.900

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: switch measure-touchpad-tap to python-libevdev
Peter Hutterer [Fri, 15 Mar 2019 02:00:17 +0000 (12:00 +1000)]
tools: switch measure-touchpad-tap to python-libevdev

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: switch measure-touchpad-pressure to python-libevdev
Peter Hutterer [Fri, 15 Mar 2019 01:56:48 +0000 (11:56 +1000)]
tools: switch measure-touchpad-pressure to python-libevdev

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: switch measure-touch-size to python-libevdev
Peter Hutterer [Fri, 15 Mar 2019 01:34:15 +0000 (11:34 +1000)]
tools: switch measure-touch-size to python-libevdev

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: switch measure-fuzz to use python-libevdev
Peter Hutterer [Fri, 15 Mar 2019 01:21:27 +0000 (11:21 +1000)]
tools: switch measure-fuzz to use python-libevdev

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoCI: simplify the logic for rebuilding the containers
Benjamin Tissoires [Thu, 21 Mar 2019 08:35:40 +0000 (09:35 +0100)]
CI: simplify the logic for rebuilding the containers

right now the check_if_older_than_a_week rule does (in pseudo-code):
- get timestamp of current image or 0
- get timestamp of upstream image or 0
- if upstream image is newer than current image
  copy upstream image into current
- if we are in a scheduled pipeline, or if there is no current image
  (timestamp of 0), rebuild the current image

The ci-templates if-not-exists rule does:
- if there is a current image, exit
- if there is an upstream image, copy it to current and exit
- rebuild

Having the following is equivalent to the current behaviour and
can be used instead of check_if_older_than_a_week:
- if there is an upstream image, copy it to current and exit
- if there is a current image, exit
- rebuild

Because what matters is:

forks should be running the upstream image if available
forks should be running the latest upstream image in the libinput case
forks should be able to rebuild the images if there is no upstream
(change of the image tag)

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: do not rebuild the image for regular MR or pushes
Benjamin Tissoires [Tue, 19 Feb 2019 15:51:43 +0000 (16:51 +0100)]
CI: do not rebuild the image for regular MR or pushes

We better not rebuild the image in regular operations unless there is a
strong need for it.
We can however set up a scheduled pipeline to rebuild the images once
a week or once a month in the upstream repo, and the forks will fetch
those new images when they need.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: use templates for Ubuntu
Benjamin Tissoires [Fri, 15 Mar 2019 09:58:50 +0000 (10:58 +0100)]
CI: use templates for Ubuntu

For ubuntu, we need to enable some special packages, so use a script.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: use templates for Arch
Benjamin Tissoires [Thu, 14 Mar 2019 16:22:48 +0000 (17:22 +0100)]
CI: use templates for Arch

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: use the template for fedora
Benjamin Tissoires [Thu, 14 Mar 2019 08:06:23 +0000 (09:06 +0100)]
CI: use the template for fedora

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: clean up all but the correct tag
Benjamin Tissoires [Tue, 19 Feb 2019 15:36:39 +0000 (16:36 +0100)]
CI: clean up all but the correct tag

We should rely on the provided tag, not latest.
Move the clean stage at the end, there is no point in running it at
the beginning.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: heavily rework the container creation
Benjamin Tissoires [Thu, 14 Mar 2019 07:59:53 +0000 (08:59 +0100)]
CI: heavily rework the container creation

Now everybody gets to rebuild their own containers if there is a change
(too old or change in the packages). This should allow the MR touching
the package list to succeed.

Removal of the container_check stage, we can just have this in a
before_script.

Removal of the manual creation of the containers, not needed as we better
just increment <DISTRO>_TAG.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoCI: remove the bootstrapping stage
Benjamin Tissoires [Tue, 19 Feb 2019 09:53:14 +0000 (10:53 +0100)]
CI: remove the bootstrapping stage

We want to have a common repo for the containers templates.
So we can reuse the produced image from this repo and remove our custom
bootstrap image.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agotools: record: increase value size to 6 digits
Peter Hutterer [Fri, 29 Mar 2019 05:12:36 +0000 (15:12 +1000)]
tools: record: increase value size to 6 digits

Tablets commonly have higher axis ranges, might as well make sure they line
up.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: add a test to make sure all our quirks files are listed in meson
Peter Hutterer [Sun, 31 Mar 2019 22:37:00 +0000 (08:37 +1000)]
quirks: add a test to make sure all our quirks files are listed in meson

Simple diff between the file list and what ls gives us in the quirks
directory.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: add the toshiba quirks file to the file list
Peter Hutterer [Sun, 31 Mar 2019 22:29:44 +0000 (08:29 +1000)]
meson.build: add the toshiba quirks file to the file list

Was added to git in c741a42aec91e6882c83f225c3061cf158fb9c82 but not added to
meson's file list.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoRemoved whitespace from filename.
Tobias Stoeckmann [Fri, 29 Mar 2019 11:32:14 +0000 (12:32 +0100)]
Removed whitespace from filename.

Having a whitespace at the end of a quirks file is not useful.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
5 years agolibinput 1.13.0 1.13.0
Peter Hutterer [Thu, 28 Mar 2019 23:39:30 +0000 (09:39 +1000)]
libinput 1.13.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add another valgrind suppression for Python
Peter Hutterer [Thu, 28 Mar 2019 05:59:16 +0000 (15:59 +1000)]
test: add another valgrind suppression for Python

This triggers on Fedora 30, even though skip skip the tools options test when
running under valgrind.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: fix tool option parsing tests for signals
Peter Hutterer [Thu, 28 Mar 2019 05:31:51 +0000 (15:31 +1000)]
test: fix tool option parsing tests for signals

Not sure how this ever worked correctly: a process terminated by a signal has
the negative signo as return code. This would apply to every debug-events and
debug-gui test because they have to get killed by a signal. This failed
occasionally, presumably a race with the GTK startup/signal handler/whatever.

Fix this by a) sending SIGQUIT because that won't get handled by the tools and
b) prending that if we get a -SIGQUIT exit code, everything is fine.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: fix the tool option parse test to handle unittest arguments
Peter Hutterer [Thu, 28 Mar 2019 05:25:13 +0000 (15:25 +1000)]
tools: fix the tool option parse test to handle unittest arguments

Pass arguments we don't handle directly through to the unittest module. This
way we can filter tests with -k testname etc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/api: improve readability of the API docs
Peter Hutterer [Wed, 27 Mar 2019 05:18:20 +0000 (15:18 +1000)]
doc/api: improve readability of the API docs

Still not great and probably makes any professional designer's eyes bleed, but
at least it's more readable now.

Changes:
- spacing after param name so they don't cuddle up with the description
- color changes and background image removals to drop the doxygen default look
- font size changes to not make things overrun
- font family change to make the function prototypes readable

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoFix three coverity complaints
Peter Hutterer [Mon, 25 Mar 2019 05:15:13 +0000 (15:15 +1000)]
Fix three coverity complaints

Two resource leaks, one uninitialized variable.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: mark the protocol A device as touch device
Peter Hutterer [Fri, 22 Mar 2019 06:21:08 +0000 (16:21 +1000)]
test: mark the protocol A device as touch device

Now that we're emulating everything correctly, let's mark it as proper touch
device.

Two test cases need to be excluded:
- double-down triggers an assert in the test device because this isn't
  possible this way with protocol A devices
- the axisrange warning test can't be triggered, mtdev clips those axes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: switch the protocol A test device to be an actual protocol A device
Peter Hutterer [Fri, 22 Mar 2019 05:47:21 +0000 (15:47 +1000)]
test: switch the protocol A test device to be an actual protocol A device

This device mostly behaved like a normal touch device except for
SYN_MT_REPORT. Switch it to behave like a real protocol A device and adjust
the test accordingly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: let the device custom create method return a bool
Peter Hutterer [Fri, 22 Mar 2019 05:44:32 +0000 (15:44 +1000)]
test: let the device custom create method return a bool

This is so we can tell litest to create the device anyway, useful for when all
we have to do in the custom create is allocate some memory.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: drop remnants of the test device udev rules
Peter Hutterer [Fri, 22 Mar 2019 01:49:41 +0000 (11:49 +1000)]
test: drop remnants of the test device udev rules

Removed with 27188228fdef10707c61f822db57bf0d3d568682 but we still had the
meson define being set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: don't install our normal rules file in installed mode
Peter Hutterer [Fri, 22 Mar 2019 01:43:13 +0000 (11:43 +1000)]
test: don't install our normal rules file in installed mode

When running the test-suite, don't install our rules for device groups and
model quirks - they're expected to be present already.

Plus, since we copy them from the meson build dir, we don't have
those files available anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: remove unnecessary comparison
Konstantin Kharlamov [Thu, 21 Mar 2019 21:02:24 +0000 (00:02 +0300)]
evdev: remove unnecessary comparison

All "goto err" resides after fd have been properly initialized.

Fixes "Comparison is always true because fd >= 0." warning by LGTM.

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
5 years agoevdev: fix "always false" comparison
Konstantin Kharlamov [Thu, 21 Mar 2019 20:49:46 +0000 (23:49 +0300)]
evdev: fix "always false" comparison

Fixes "Comparison is always false because rc >= 0." warning by LGTM.

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
5 years agolibinput 1.12.902 1.12.902
Peter Hutterer [Thu, 21 Mar 2019 05:19:46 +0000 (15:19 +1000)]
libinput 1.12.902

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: Rename button up and down states to mirror each other
Benjamin Poirier [Fri, 4 Jan 2019 06:37:17 +0000 (15:37 +0900)]
evdev: Rename button up and down states to mirror each other

The button up debouncing states mirror the button down states with the
addition of the spurious debouncing states. Rename the states to better
show this symmetry.

5 years agotouchpad: multitap state transitions use the same timing used for taps
Paolo Giangrandi [Thu, 14 Mar 2019 03:53:54 +0000 (21:53 -0600)]
touchpad: multitap state transitions use the same timing used for taps

Multitap sequences (more than 2 taps) had a 180ms timer set only on press,
not on release.
New taps within those 180ms could either trigger multitap+drag or another
multitap (for N+1 taps), resetting the timer on press once again.
If no new tap appears within those 180ms, the sequence was considered
complete.

This behavior differed from regular taps: for the very first tap of a
sequence the timer was set both on touch and on release.

The multitap timing caused misdetection of triple-tap-and-drag sequences as
the timer was hit frequently. Some of those were correctly detected, others
as tripletap only.

Changing the timer to be set on press **and** release gives us a more lenient
timeout. 180ms for tap-and-drag and 180ms for the next tap down after
release. This was also the behavior for the xorg synaptics driver.

Note that quadruple-tap-and-drag didn't suffer from this because the timeout
resulted in double-tap + double-tap-and-drag. Which has the same
user-visible effect.

5 years agoSet TouchPad Pressure Range for Toshiba L855
Feldwor [Sun, 17 Mar 2019 21:45:43 +0000 (21:45 +0000)]
Set TouchPad Pressure Range for Toshiba L855

5 years agomeson.build: make valgrind optional
Peter Hutterer [Fri, 15 Mar 2019 00:23:25 +0000 (10:23 +1000)]
meson.build: make valgrind optional

Now that we're providing the test suite as installed option, distributions
will likely include it as a test package. valgrind is only used for the
meson-specifc test setup. So let's make it optional.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: flake8 fixes, typo fixes and missing exception handling
Peter Hutterer [Fri, 15 Mar 2019 01:19:22 +0000 (11:19 +1000)]
tools: flake8 fixes, typo fixes and missing exception handling

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agolibinput 1.12.901 1.12.901
Peter Hutterer [Thu, 14 Mar 2019 05:13:52 +0000 (15:13 +1000)]
libinput 1.12.901

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: make the test suite runner available as installed binary
Peter Hutterer [Tue, 5 Mar 2019 05:51:06 +0000 (15:51 +1000)]
test: make the test suite runner available as installed binary

Available as 'libinput test-suite'. This also renames the bit in the build
directory now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add an option to skip installing our quirks into the test system
Peter Hutterer [Tue, 5 Mar 2019 05:24:10 +0000 (15:24 +1000)]
test: add an option to skip installing our quirks into the test system

This allows us to run the test suite runner against the installed system
rather than always using the build tree quirks.

The actual option will be removed in a future commit, it is just here for
commit consistency and testing.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: move the builddir lookup function out to a separate file
Peter Hutterer [Wed, 6 Mar 2019 10:16:41 +0000 (20:16 +1000)]
tools: move the builddir lookup function out to a separate file

We want to use this from the tests as well soon, so let's move it to a more
generic location. This also changes the API to be slightly more sensible, a
free() is the same cost (and safer) than passing a static buffer in and hoping
we didn't get the size wrong.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: split out the unit tests into a separate test suite
Peter Hutterer [Wed, 6 Mar 2019 04:19:08 +0000 (14:19 +1000)]
test: split out the unit tests into a separate test suite

All the bits that test for utility functions to work correctly can be run
separately from the main test suite (which tests devices and libinput in
general). These bits here are the ones that test the code itself and aren't
reliant on anything else.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: move the double assert macros to a separate header
Peter Hutterer [Wed, 13 Mar 2019 04:30:01 +0000 (14:30 +1000)]
test: move the double assert macros to a separate header

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: split the library version test out
Peter Hutterer [Wed, 6 Mar 2019 03:56:01 +0000 (13:56 +1000)]
test: split the library version test out

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: split up the quirks installations
Peter Hutterer [Wed, 6 Mar 2019 02:03:33 +0000 (12:03 +1000)]
test: split up the quirks installations

No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: install the test device udev rule from a string
Peter Hutterer [Tue, 5 Mar 2019 05:14:12 +0000 (15:14 +1000)]
test: install the test device udev rule from a string

It's a one-liner, we don't need this as a separate file. Plus, this makes the
test suite runner less dependent on the build directory.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: split the test-specific #defines out
Peter Hutterer [Wed, 6 Mar 2019 03:43:00 +0000 (13:43 +1000)]
test: split the test-specific #defines out

These don't need to be in the libinput config.h

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add --help to the test suite runner
Peter Hutterer [Wed, 6 Mar 2019 23:16:05 +0000 (09:16 +1000)]
test: add --help to the test suite runner

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: skip the option parsing test during valgrind
Peter Hutterer [Thu, 7 Mar 2019 01:22:13 +0000 (11:22 +1000)]
tools: skip the option parsing test during valgrind

We don't want to valgrind through python...

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: clip the exit code to 255
Peter Hutterer [Thu, 7 Mar 2019 00:12:11 +0000 (10:12 +1000)]
test: clip the exit code to 255

If more than 255 tests fail, we're returning an exit code outside of the POSIX
standard. This only takes effect for -j1, where we fork off we only ever have
a failed value of 1 anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: minor warning message change
Peter Hutterer [Tue, 5 Mar 2019 05:10:36 +0000 (15:10 +1000)]
test: minor warning message change

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/user: put an extra note in regarding the test suite
Peter Hutterer [Wed, 6 Mar 2019 23:14:55 +0000 (09:14 +1000)]
doc/user: put an extra note in regarding the test suite

Running the test suite runner is good, but not sufficient, a full ninja test
is required to get the full coverage.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/user: correct the test suite runner invocation
Peter Hutterer [Wed, 6 Mar 2019 03:35:08 +0000 (13:35 +1000)]
doc/user: correct the test suite runner invocation

With meson this is now in the build directory

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoinclude: sync kernel headers for v5.0
Peter Hutterer [Wed, 6 Mar 2019 01:11:04 +0000 (11:11 +1000)]
include: sync kernel headers for v5.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: display the discrete axis steps too
Peter Hutterer [Wed, 28 Nov 2018 02:16:51 +0000 (12:16 +1000)]
tools: display the discrete axis steps too

Draw a second smaller scroll bar that moves with every discrete step. For that
to work, we have to accumulate the value from the normal scroll events until
we get the first discrete one, then move up.

The value per discrete event changes depending on the click wheel angle, so we
can't just use discrete on its own if we want the two scroll bars aligned.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: group the scroll bits into a struct
Peter Hutterer [Wed, 28 Nov 2018 02:11:08 +0000 (12:11 +1000)]
tools: group the scroll bits into a struct

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: fix grammar in comment
Peter Hutterer [Mon, 11 Feb 2019 22:51:32 +0000 (08:51 +1000)]
fallback: fix grammar in comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: record: print a helpful error message when we don't have devices
Peter Hutterer [Fri, 1 Mar 2019 00:27:05 +0000 (10:27 +1000)]
tools: record: print a helpful error message when we don't have devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: Do not perform spurious detection when spurious is already enabled
Benjamin Poirier [Fri, 4 Jan 2019 07:03:38 +0000 (16:03 +0900)]
evdev: Do not perform spurious detection when spurious is already enabled

When exiting RELEASE_DELAYED state, do not transition into states to detect
the need for spurious mode (RELEASE_WAITING, MAYBE_SPURIOUS).
RELEASE_DELAYED is only entered when spurious mode is enabled, there is no
need to detect the need for spurious mode again.

5 years agoReduce button scroll timeout to 38ms
Henré Botha [Mon, 18 Feb 2019 15:04:53 +0000 (15:04 +0000)]
Reduce button scroll timeout to 38ms

When using button scrolling, a hardcoded delay of 200 milliseconds between
button down and scroll events being emitted makes fast scrolling gestures feel
clunky and sometimes fail entirely. This feature comes from
xf86-input-mouse, was copied into xf86-input-evdev and reimplemented in
libinput.

This was, as far as can be determined, to allow right clicks without
triggering scrolling. libinput now also has distance triggers (2bbf4a0117624)
and sends button events if no movement has happened for long clicks,
regardless of the delay.

The 200ms delay is thus not really necessary anymore, let's drop it to 38ms
which is just above the 3-event threshold for 8/10/12ms intervals which is
most devices.

Fixes #237

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/user: replace evemu with libinput-record in the documentation
Peter Hutterer [Mon, 18 Feb 2019 05:46:07 +0000 (15:46 +1000)]
doc/user: replace evemu with libinput-record in the documentation

Fixes #220

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: replace != NULL checks with ck_assert_notnull
Peter Hutterer [Thu, 14 Feb 2019 22:42:15 +0000 (08:42 +1000)]
test: replace != NULL checks with ck_assert_notnull

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: check for a non-null libinput in the new udev_create_seat_too_long test
Peter Hutterer [Thu, 14 Feb 2019 22:37:21 +0000 (08:37 +1000)]
test: check for a non-null libinput in the new udev_create_seat_too_long test

Found by coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: remove unreachable code
Peter Hutterer [Thu, 14 Feb 2019 22:32:04 +0000 (08:32 +1000)]
test: remove unreachable code

When the loop was reduced to BTN_DIGI only, it guaranteed that the BTN_STYLUS
condition was no longer met.

Found by coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoLenovo X1 Carbon 6th Trackpoint
Diep Pham [Thu, 14 Feb 2019 13:56:02 +0000 (20:56 +0700)]
Lenovo X1 Carbon 6th Trackpoint

5 years agodoc/user: swap udevadm hwdb for systemd-hwdb
Peter Hutterer [Thu, 14 Feb 2019 06:55:01 +0000 (16:55 +1000)]
doc/user: swap udevadm hwdb for systemd-hwdb

The latter has more obvious handling of hwdb matches. With udevadm hwdb a glob
may take precedence over a hwdb entry even if the latter is sorted later.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoadd quirk for Lenovo X1 Carbon 4th Trackpoint
Diep Pham [Thu, 14 Feb 2019 03:17:28 +0000 (10:17 +0700)]
add quirk for Lenovo X1 Carbon 4th Trackpoint

5 years agotools: debug-gui: change the tablet color
Peter Hutterer [Thu, 14 Feb 2019 03:01:39 +0000 (13:01 +1000)]
tools: debug-gui: change the tablet color

Grey isn't pretty enough

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: debug-gui: add a previously unbalanced cairo_restore()
Peter Hutterer [Thu, 14 Feb 2019 02:44:27 +0000 (12:44 +1000)]
tools: debug-gui: add a previously unbalanced cairo_restore()

And remove some of the unnecessary ones

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: debug-gui: move the pointer delta code to draw_pointer
Peter Hutterer [Thu, 14 Feb 2019 02:57:11 +0000 (12:57 +1000)]
tools: debug-gui: move the pointer delta code to draw_pointer

Not sure why this was in draw_tablet(), probably copy/paste

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add another helper to discard specific events
Peter Hutterer [Tue, 12 Feb 2019 01:59:09 +0000 (11:59 +1000)]
test: add another helper to discard specific events

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: skip the tablet pressure test if we don't have pressure
Peter Hutterer [Tue, 12 Feb 2019 04:02:13 +0000 (14:02 +1000)]
test: skip the tablet pressure test if we don't have pressure

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