If the start and end of a touch are dropped, the slot, according to the
kernel, may have a different state. We should inform the client of these
changes even if the slot is not currently active.
For most axes this doesn't matter too much as we expect them to change
during an active touch anyway so we don't expect the kernel's caching to
be a problem. However where the ABS_MT_TOOL_TYPE changed during a sync
we need to inform the client of the new tool type so that future
touchese won't be erroneously treated as e.g. palms.
For a full reproducer see the test case but it comes down to:
- touch down with MT_TOOL_PALM, make sure libevdev reads the state
- change that slot to MT_TOOL_FINGER, trigger a sync
- ensure that libevdev pushes out that tool type change even if the
slot is not currently active
Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net>
Part-of: <https://gitlab.freedesktop.org/libevdev/libevdev/-/merge_requests/124>
We've had this for roughly 10y now and it's value is dubious. Most of
xorg no longer requires, mesa accepts but doesn't require it, most of GNOME
doesn't accept it and neither does systemd.
Let's drop the requirement.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Part-of: <https://gitlab.freedesktop.org/libevdev/libevdev/-/merge_requests/123>
Commit originally by Simon Ser in wayland/wayland-protocols!305.
Currently our CI setup has a downside: for each push on a merge
request, two pipelines are triggered. The first is triggered in
the context of the forked repository, and the second is triggered
in the context of the MR in the parent repository.
Replace the workflow rules with the ones in the official docs [1],
so that a branch pipeline isn't triggered when a MR exists for that
branch.
[1]: https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
If libevdev is used as subproject header lookup for libevdev.h fails
because our build directory isn't correctly set as one of the include
directories.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Not much of an effect but where libevdev is used as subproject those
files are now correctly accessible.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
A bit of a niche case but this helps with embedding libevdev as static
library when the tools don't matter.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Historically, I copied the docs on the server directly after pushing latest,
but (especially with meson) it's a lot easier to just build that specific tag
locally and rsync it to the correct target directory.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
On a test run it only prints the summary and one message per failed
test. While having this behaviour by default is nice it might be
interesting in some case to have more information print. Make the print
mode configurable from the environment variable CK_VERBOSITY, which can
have the values "silent", "minimal", "normal" or "verbose" so we can have
different outputs.
$ sudo CK_VERBOSITY=verbose ./test-libevdev
Running suite(s): libevdev init tests
libevdev_has_event tests
libevdev event tests
100%: Checks: 79, Failures: 0, Errors: 0
test-libevdev-init.c:23:P:test_new_device:test_new_device:0: Passed
test-libevdev-init.c:28:P:test_free_device:test_free_device:0: Passed
[ ... ]
Note that the default print mode doesn't change after this patch.
Signed-off-by: Enric Balletbo i Serra <eballetbo@redhat.com>
Otherwise, the distribution tarballs will be generated based on what's
in libevdev_la_SOURCES, which only includes the headers for the
operating system the maintainer happens to be running "make dist"
from. As a result of this, e.g. the 1.13.0 tarball only includes the
headers for Linux, making the tarball unbuildable for FreeBSD.
"meson dist" was already doing the right thing.
Signed-off-by: Alyssa Ross <hi@alyssa.is>
This is copied from libinput's CI but as one large change rather than
cherry-picking the process on how to get here. meson-build.sh is synched
with libinput's version - it is a more generic version anyway.
With this change we no longer require separate images for the qemu runs,
our default image is qemu-capable and can be run in qemu via
boot2container (b2c).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Only use the LIBEVDEV_SKIP_ROOT_TESTS env var in autotools where we need
it, in meson we can use meson to control which tests we (don't) want to
run.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Unlike autotools distcheck which ensures we didn't forget to add
anything to the makefiles, ninja dist just zips up the git repo.
It does run the tests though but without suite selection which is a
problem for us here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Use the new needs-uinput suite specifier for the meson build job, and
use --no-tests for ninja dist in the autotools build job.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
In the no-check:meson job, the ninja arg was "dist" so the test would be
run as part of that anyway (and skipped, since we didn't have check).
In the no-doxygen-check:meson job, the ninja arg was zero so the test
would be skipped but since we don't have check we might as well just
run it as empty test suite.
And the same applies to the scan-build job, running the test shouldn't
hurt here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>