platform/upstream/libinput.git
5 years agomeson.build: define HAVE_LOCALE_H
Peter Hutterer [Tue, 5 Feb 2019 00:04:56 +0000 (10:04 +1000)]
meson.build: define HAVE_LOCALE_H

Regression introduced in 99bb0ee7cb35f7d7a932e7cf28885782bad17613,
HAVE_LOCALE_H isn't defined by default, we need to set it manually.

Reported-by: Pascal Kockwelp
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoudev: drop unused function
Peter Hutterer [Thu, 7 Feb 2019 05:00:39 +0000 (15:00 +1000)]
udev: drop unused function

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: fix a a compiler warning
Peter Hutterer [Thu, 7 Feb 2019 04:58:59 +0000 (14:58 +1000)]
evdev: fix a a compiler warning

Implicit enum conversion

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agopad: rename the include guard
Peter Hutterer [Wed, 6 Feb 2019 04:12:56 +0000 (14:12 +1000)]
pad: rename the include guard

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofilter: drop an unused function and an unused struct
Peter Hutterer [Wed, 6 Feb 2019 04:07:37 +0000 (14:07 +1000)]
filter: drop an unused function and an unused struct

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: fix a comment typo
Peter Hutterer [Tue, 5 Feb 2019 23:05:48 +0000 (09:05 +1000)]
fallback: fix a comment typo

5 years agoquirks: add a quirk to ignore unreliable tablet mode switch devices
Peter Hutterer [Wed, 16 Jan 2019 00:05:59 +0000 (10:05 +1000)]
quirks: add a quirk to ignore unreliable tablet mode switch devices

On the Asus Vivobook Flip 14, the tablet mode switch is unreliable and always
on. Instead of marking every device as 'do not suspend', just mark the tablet
switch itself.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: Rename some debouncing functions for consistency
Benjamin Poirier [Fri, 4 Jan 2019 07:20:48 +0000 (16:20 +0900)]
evdev: Rename some debouncing functions for consistency

All other similar functions are named with the "_handle_event" postfix.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: up the ratelimit tests to 1000ms
Peter Hutterer [Sun, 3 Feb 2019 23:56:45 +0000 (09:56 +1000)]
test: up the ratelimit tests to 1000ms

This fails too often on the gitlab runners, so let's expand the times.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: gnu90 alias for gnu89 may not be supported
Jan Beich [Sun, 3 Feb 2019 09:27:33 +0000 (09:27 +0000)]
meson.build: gnu90 alias for gnu89 may not be supported

cc1: error: unrecognized command line option "-std=gnu90"

5 years agotablet: add tilt-based touch arbitration for screen tablets
Peter Hutterer [Fri, 28 Sep 2018 01:47:32 +0000 (11:47 +1000)]
tablet: add tilt-based touch arbitration for screen tablets

If the tilt angle on tip down is not 0 set the touch arbitration to a
rectangle around the assumed position of the hand. This assumed position is
right of the tip for a rightwards tilt and left of the tip for a leftwards
tilt (i.e. left-handed mode). The rectangle is 200x200mm with a 20x50mm
NW of the tip or NE for left-handed. In other words, if the period below is
the tip, the rectangle looks like this:

    +-----------+                          +-----------+
    | .  | <- for rightwards tilt   |         . |
    |           |                          |           |
    |           |                          |           |
    |           |    for leftwards tilt -> |           |
    +-----------+                          +-----------+

Touches within that rectangle are canceled, new touches are ignored. As the
tip moves around the rectangle is updated but touches are only cancelled on
the original tip down. While the tip is down, new touches are ignored in the
exclusion area but pre-existing touches are not cancelled.

This is currently only implemented in the fallback interface, i.e. it will
only work for Cintiqs.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: add a rectangle to the touch arbitration
Peter Hutterer [Wed, 19 Sep 2018 02:02:51 +0000 (12:02 +1000)]
evdev: add a rectangle to the touch arbitration

This enables us to specify the location that needs to be arbitrated, rather
than just disabling the whole device altogether. This patch just adds the
hooks, no implementation.

This is internal API only, one backend can specify an area in mm which gets
converted to device coordinates in the target device and arbitrated there.
Right now, everything simply passes NULL.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: force the palm state to PALM_NONE on touch begin
Peter Hutterer [Fri, 28 Sep 2018 04:10:48 +0000 (14:10 +1000)]
fallback: force the palm state to PALM_NONE on touch begin

If we don't have tool-based palm detection, make sure our touch is labelled as
"not palm" during touch down. Otherwise that slot remains on palm forever if
it gets tagged as palm through some other means.

This currently has no effect, nothing in the code would label the touch as
palm. This is prep work for better touch arbitration.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: introduce a touch arbitration enum
Peter Hutterer [Wed, 19 Sep 2018 02:02:51 +0000 (12:02 +1000)]
evdev: introduce a touch arbitration enum

This enables us to change the types of touch arbitration, with the focus on
allowing location-based touch arbitration as well as the more generic "disable
everything".

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add a LITEST_DIRECT feature for the wacom cintiqs
Peter Hutterer [Tue, 8 Jan 2019 05:37:52 +0000 (15:37 +1000)]
test: add a LITEST_DIRECT feature for the wacom cintiqs

Currently unused, but will be used in later patches

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: add timer-based touch arbitration
Peter Hutterer [Sun, 6 Jan 2019 22:27:22 +0000 (08:27 +1000)]
fallback: add timer-based touch arbitration

When a hand is resting on a pen+touch device, lifting the hand may remove the
stylus from proximity before the hand leaves the surface. If the kernel
performs touch arbitration, this triggers a touch down on proximity out,
followed by a touch up immediately after when the hand stops touching.

This can cause ghost touch events. Prevent this by using a timer-based
arbitration toggle.

Same as 2a378beab032d742770e24a6822378faa90cf1f6 but for the fallback
interface.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotouchpad: release all button presses on device suspend
Peter Hutterer [Thu, 31 Jan 2019 01:09:53 +0000 (11:09 +1000)]
touchpad: release all button presses on device suspend

This leaves a bug open, on a Lenovo T440 generation touchpad with top software
buttons, the button will not be leased correctly. This is caused by
device->is_suspended=true by the time we try to clear the state and the
button events thus getting filtered.

This used to affect all touchpads, this patch just moves it so it only affects
the T440-like devices now.

Fixes #233

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add a test for normal touchpad button presses
Peter Hutterer [Thu, 31 Jan 2019 01:55:55 +0000 (11:55 +1000)]
test: add a test for normal touchpad button presses

Probably covered elsewhere in a more generic test anyway but let's have one we
know is executed for all touchpads.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: cancel the middle button timer on device removed
Peter Hutterer [Wed, 30 Jan 2019 23:02:58 +0000 (09:02 +1000)]
evdev: cancel the middle button timer on device removed

If a middle-button-emulating device is removed with one button down, the timer
never gets cancelled and triggers an assert during device removal.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: add an additional final libinput_dispatch()
Peter Hutterer [Wed, 30 Jan 2019 04:26:31 +0000 (14:26 +1000)]
test: add an additional final libinput_dispatch()

After the test device was removed, run one more libinput_dispatch(). This may
catch some errors that happen due to the device removal that were ignored for
now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofallback: when force-releasing keys, release them directly
Peter Hutterer [Wed, 30 Jan 2019 04:10:28 +0000 (14:10 +1000)]
fallback: when force-releasing keys, release them directly

An emulated button is recorded as BTN_MIDDLE in the key down mask. If the
device is removed in that state, the BTN_MIDDLE event processed triggers
an assertion when we try to send out the event twice.

Fixes #201

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: cancel the button scroll timer on device removed
Peter Hutterer [Wed, 30 Jan 2019 02:00:47 +0000 (12:00 +1000)]
evdev: cancel the button scroll timer on device removed

If a device was removed while a button was held down and within the timeout,
the timer was never cancelled (and removed from the timer list), triggering an
assert during device removal.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: replace manual checks with cc.has_function()
Peter Hutterer [Wed, 30 Jan 2019 09:37:48 +0000 (19:37 +1000)]
meson.build: replace manual checks with cc.has_function()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: bump to 1.12.900
Peter Hutterer [Wed, 30 Jan 2019 23:46:51 +0000 (09:46 +1000)]
meson.build: bump to 1.12.900

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: Missing test cases for palm detection based on touch size
Furkan Tokac [Sun, 23 Dec 2018 23:52:42 +0000 (01:52 +0200)]
test: Missing test cases for palm detection based on touch size

Missing tests are written.

5 years agoquirks: enforce uppercase hex numbers
Peter Hutterer [Fri, 18 Jan 2019 01:57:55 +0000 (11:57 +1000)]
quirks: enforce uppercase hex numbers

No specific reason other than consistency.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: run the 'keep ignoring' arbitration tests on the cintiqs as well
Peter Hutterer [Fri, 4 Jan 2019 05:09:37 +0000 (15:09 +1000)]
test: run the 'keep ignoring' arbitration tests on the cintiqs as well

Not 100% why this one was only run on the intuos, but I suspect by accident.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: automate the tablet pairing for the arbitration tests
Peter Hutterer [Fri, 4 Jan 2019 04:58:52 +0000 (14:58 +1000)]
test: automate the tablet pairing for the arbitration tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: store the device type in the test device struct
Peter Hutterer [Fri, 4 Jan 2019 04:44:38 +0000 (14:44 +1000)]
test: store the device type in the test device struct

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: fetch the is-touchpad in arbitration tests from a input property
Peter Hutterer [Fri, 4 Jan 2019 04:21:38 +0000 (14:21 +1000)]
test: fetch the is-touchpad in arbitration tests from a input property

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: don't enable tapping for the touch arbitration test
Peter Hutterer [Fri, 4 Jan 2019 05:10:20 +0000 (15:10 +1000)]
test: don't enable tapping for the touch arbitration test

Looks like a copy/paste error.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: clarify a confusing comment
Peter Hutterer [Fri, 4 Jan 2019 05:27:02 +0000 (15:27 +1000)]
test: clarify a confusing comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: don't execute snprintf if not gonna print
Konstantin Kharlamov [Fri, 11 Jan 2019 23:15:20 +0000 (02:15 +0300)]
evdev: don't execute snprintf if not gonna print

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
5 years agoevdev: inline evdev_log_msg_va
Konstantin Kharlamov [Fri, 11 Jan 2019 22:57:08 +0000 (01:57 +0300)]
evdev: inline evdev_log_msg_va

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
5 years agodoc: add missing @ref
Peter Hutterer [Thu, 17 Jan 2019 00:45:18 +0000 (10:45 +1000)]
doc: add missing @ref

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc: correct a slightly ambiguous @ref wording
Peter Hutterer [Thu, 17 Jan 2019 00:44:47 +0000 (10:44 +1000)]
doc: correct a slightly ambiguous @ref wording

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: document show-keycodes option for libinput-record
Peter Hutterer [Thu, 17 Jan 2019 00:00:30 +0000 (10:00 +1000)]
tools: document show-keycodes option for libinput-record

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agodoc/user: fix a leftover html tag
Peter Hutterer [Tue, 15 Jan 2019 23:37:10 +0000 (09:37 +1000)]
doc/user: fix a leftover html tag

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoUpdate gitlab templates for label renames
Peter Hutterer [Tue, 15 Jan 2019 23:32:46 +0000 (09:32 +1000)]
Update gitlab templates for label renames

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agomeson.build: enable CPP include check only in case CPP compiler is available
Peter Seiderer [Sat, 12 Jan 2019 10:10:46 +0000 (11:10 +0100)]
meson.build: enable CPP include check only in case CPP compiler is available

Drop hard meson C++/CPP dependency, only needed for the build-time
header inclusion test, build the test only in case C++/CPP compiler
is available.

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: add ModelBouncingKeys for Contour RollerMouse
Christoffer Holmstedt [Sun, 13 Jan 2019 09:37:04 +0000 (10:37 +0100)]
quirks: add ModelBouncingKeys for Contour RollerMouse

The Contour RollerMouse have a button for "double click" which emulates
a double click. The two clicks are so close together that with libinput
heuristics it looks like a worn-out button and triggers debouncing
functionality.

This commit adds support for the RollerMouse Free 2 and RollerMouse
Re:d.

Fixes libinput/libinput#204

5 years agoquirks: don't disable keyboard device for Acer Spin 5 when in tablet mode
Nathaniel Roach [Tue, 8 Jan 2019 02:24:16 +0000 (02:24 +0000)]
quirks: don't disable keyboard device for Acer Spin 5 when in tablet mode

As with some other convertible devices, the keyboard is disabled by the system when the device is in tablet mode.
The volume control keys on the side of the unit are not, but still appear from the keyboard to the system.
Don't disable the keyboard when in tablet mode.

Tested working.

5 years agotest: add test devices for the Cintiq Pro 16
Peter Hutterer [Fri, 4 Jan 2019 02:35:22 +0000 (12:35 +1000)]
test: add test devices for the Cintiq Pro 16

Reconstructed from the HID descriptors here:
https://github.com/linuxwacom/wacom-hid-descriptors/tree/master/Wacom Cintiq Pro 16/

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoinclude: update input-event-codes.h to v4.19
Peter Hutterer [Fri, 4 Jan 2019 02:37:23 +0000 (12:37 +1000)]
include: update input-event-codes.h to v4.19

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoModelTabletModeNoSuspend=1 is currently only honored for keyboards, but not touchpads...
Thomas Sailer [Thu, 3 Jan 2019 01:22:21 +0000 (02:22 +0100)]
ModelTabletModeNoSuspend=1 is currently only honored for keyboards, but not touchpads. This commit changes that.

5 years agodoc: fix doxygen references for libinput_get_user_data
Peter Hutterer [Wed, 2 Jan 2019 04:59:03 +0000 (14:59 +1000)]
doc: fix doxygen references for libinput_get_user_data

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoAsus VivoBook Flip 14 TP412UA tablet mode switch misbehaving
Thomas Sailer [Wed, 2 Jan 2019 23:19:32 +0000 (00:19 +0100)]
Asus VivoBook Flip 14 TP412UA tablet mode switch misbehaving

5 years agotools: libinput-record: record the hid report descriptor where available
Peter Hutterer [Thu, 20 Dec 2018 04:48:52 +0000 (14:48 +1000)]
tools: libinput-record: record the hid report descriptor where available

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: measure-fuzz: slightly expand the help
Peter Hutterer [Thu, 20 Dec 2018 01:43:34 +0000 (11:43 +1000)]
tools: measure-fuzz: slightly expand the help

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: measure-fuzz: fix a typo
Peter Hutterer [Thu, 20 Dec 2018 01:41:37 +0000 (11:41 +1000)]
tools: measure-fuzz: fix a typo

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: measure-fuzz: downgrade the fuzz mismatch error to just a warning
Peter Hutterer [Thu, 20 Dec 2018 01:36:18 +0000 (11:36 +1000)]
tools: measure-fuzz: downgrade the fuzz mismatch error to just a warning

Related to #199

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: measure-fuzz: fix exception printing
Peter Hutterer [Thu, 20 Dec 2018 01:09:59 +0000 (11:09 +1000)]
tools: measure-fuzz: fix exception printing

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/x86_64-linux-gnu/libinput/libinput-measure-fuzz", line 464, in <module>
    main(sys.argv)
  File "/usr/lib/x86_64-linux-gnu/libinput/libinput-measure-fuzz", line 458, in main
    print('Error: {}'.format(e.message))
AttributeError: 'InvalidConfigurationError' object has no attribute 'message'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>:
5 years agoutil: fall back to strtod if no locale in libc
makepost [Sat, 22 Dec 2018 17:51:21 +0000 (19:51 +0200)]
util: fall back to strtod if no locale in libc

uClibc-ng has experimental locale support but it's incomplete and
disabled by default, for example in Hardened Gentoo.

Fixes #63

5 years agoREADME: update documentation links
makepost [Sat, 22 Dec 2018 17:40:46 +0000 (19:40 +0200)]
README: update documentation links

Got 404s and placeholders saying that pages have moved.

5 years agotools: don't apply config options on device removed
Peter Hutterer [Wed, 28 Nov 2018 23:15:52 +0000 (09:15 +1000)]
tools: don't apply config options on device removed

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agofilter: fix typo in comment
Peter Hutterer [Tue, 18 Dec 2018 22:46:24 +0000 (08:46 +1000)]
filter: fix typo in comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoFix typos in README.md
Josh Holland [Sat, 15 Dec 2018 13:57:29 +0000 (13:57 +0000)]
Fix typos in README.md

5 years agoquirks: add a quirk for the Lenovo T480s clickpad
Peter Hutterer [Thu, 13 Dec 2018 02:06:53 +0000 (12:06 +1000)]
quirks: add a quirk for the Lenovo T480s clickpad

It's missing INPUT_PROP_BUTTONPAD but working kernel drivers prove to be
elusive. Meanwhile, add a quirk here that force-enables this bit.

Fixes #177

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoDrop explicit version requirement for libevdev
Peter Hutterer [Tue, 11 Dec 2018 02:37:40 +0000 (12:37 +1000)]
Drop explicit version requirement for libevdev

The minimum version of libevdev we require is so old that we really don't need
an explicity requirement here anymore.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agogitlab CI: switch Ubuntu 17.10 to test 18.10 instead
Peter Hutterer [Tue, 4 Dec 2018 06:44:57 +0000 (16:44 +1000)]
gitlab CI: switch Ubuntu 17.10 to test 18.10 instead

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agogitlab CI: fix ubuntu version for 18.04
Peter Hutterer [Tue, 4 Dec 2018 06:44:16 +0000 (16:44 +1000)]
gitlab CI: fix ubuntu version for 18.04

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoGitLab CI: Fix clean up stage
Benjamin Tissoires [Mon, 26 Nov 2018 12:01:28 +0000 (13:01 +0100)]
GitLab CI: Fix clean up stage

we need to get the authorization token with the gitlab address, not
the registry.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoGitLab CI: use extends to simplify declaration of jobs
Benjamin Tissoires [Mon, 26 Nov 2018 11:09:57 +0000 (12:09 +0100)]
GitLab CI: use extends to simplify declaration of jobs

The build stage gets simpler:
- we define one high level build job
- for each type of distro, we subclass the high-level job with the
  distribution image
- then we subclass the previous jobs into specific release versions
  or specific items to check

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoGitLab CI: use buildah/podman instead of docker
Benjamin Tissoires [Fri, 2 Nov 2018 10:44:45 +0000 (11:44 +0100)]
GitLab CI: use buildah/podman instead of docker

well, docker has licensing issues, and the version shipped in
Fedora is getting quite old now.
We have a free open source alternative through buildah/podman/skopeo.

Build our building image in the CI too, so updates can
be achieved by just triggering the bootstrap job.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoGitLab CI: replace occurrences of docker by container
Benjamin Tissoires [Mon, 26 Nov 2018 10:49:50 +0000 (11:49 +0100)]
GitLab CI: replace occurrences of docker by container

We want to move away from docker, so let's not reference docker everywhere
when we can use a generic term

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
5 years agoquirks: Adjust MacBookPro11,2 touchpad PalmSize
Thomas Profitt [Tue, 27 Nov 2018 22:14:07 +0000 (16:14 -0600)]
quirks: Adjust MacBookPro11,2 touchpad PalmSize

The touchpad is 104mmx75mm, but an AttrPalmSizeThreshold of 800 is too
  aggressive, and even relatively-small fingers and thumbs register as
  palms sporadically, stopping the mouse until you lift your hand and try again.

1600 was chosen because it's the point at which my fingers and thumbs,
  held at a very low angle, stop registering as palms, so it should
  acommodate bigger fingers.

I don't know if the [Apple Touchpads USB] default of 800 needs to be
  updated too, or if it's a quirk of this particular touchpad.

5 years agodoc/user: bugzilla → gitlab issue
Peter Hutterer [Sun, 25 Nov 2018 22:29:47 +0000 (08:29 +1000)]
doc/user: bugzilla → gitlab issue

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoAdded quirk for HP Spectre x360 Convertable 15-bl1xx touchpad.
Arick McNiel-Cho [Fri, 23 Nov 2018 21:10:15 +0000 (15:10 -0600)]
Added quirk for HP Spectre x360 Convertable 15-bl1xx touchpad.

5 years agomeson: increase timeout for the option parsing test
Peter Hutterer [Fri, 9 Nov 2018 00:10:58 +0000 (10:10 +1000)]
meson: increase timeout for the option parsing test

I've had runs with up to 50s, so let's cap it at 2 minutes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: draw evdev events in the debug-gui
Peter Hutterer [Wed, 7 Nov 2018 01:05:05 +0000 (11:05 +1000)]
tools: draw evdev events in the debug-gui

Listen to the pure evdev events from each device and print them. This makes it
slightly easier to associate certain jumps with the output, or otherwise see
that events are coming in even when libinput doesn't seem to process them
anymore.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: let debug-events take a device path
Peter Hutterer [Wed, 31 Oct 2018 05:52:25 +0000 (15:52 +1000)]
tools: let debug-events take a device path

This is the most common use-case other than "all from udev", so let's just
parse a device path correctly without requiring --device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: add a test for tool option parsing
Peter Hutterer [Wed, 31 Oct 2018 23:16:03 +0000 (09:16 +1000)]
tools: add a test for tool option parsing

We don't check for correctness in the output as such, just that whatever
combination of cmdline arguments still works/doesn't work. This is the
scaffolding and a few tests, but needs to be filled in, especially for
libinput measure and for some more complex combinations.

valgrind: requires one more python-related suppression
gitlab-ci: requires another environment variable so we know to skip the
   --device tests (udev will time out on those)
meson: skip the test run in release builds, we pass the full path to the built
       libinput tool but rely on the subtool lookup that won't work in a
       release build

Fixes #174

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: make the tools exit with exit code 2 on usage issues
Peter Hutterer [Wed, 31 Oct 2018 23:39:49 +0000 (09:39 +1000)]
tools: make the tools exit with exit code 2 on usage issues

This makes it easier to test for usage issues

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: debug-events: install the signal handler before any libinput operations
Peter Hutterer [Thu, 1 Nov 2018 06:42:27 +0000 (16:42 +1000)]
tools: debug-events: install the signal handler before any libinput operations

On a CI container, we will time out trying to find the udev device for our
device node. This takes 2s, a SIGINT during this time should be treated the
same as one during the mainloop.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: handle sigint in debug-gui
Peter Hutterer [Thu, 1 Nov 2018 03:56:16 +0000 (13:56 +1000)]
tools: handle sigint in debug-gui

Exit with success on SIGINT

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agopath: don't leak the udev device on failure
Peter Hutterer [Thu, 1 Nov 2018 06:19:20 +0000 (16:19 +1000)]
path: don't leak the udev device on failure

If by sheer coincidence the device succeeds on the last try, we'd have a
leaking udev device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agolibinput 1.12.3 1.12.3
Peter Hutterer [Wed, 7 Nov 2018 03:51:37 +0000 (13:51 +1000)]
libinput 1.12.3

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: allow measuring single-touch ABS_PRESSURE
Peter Hutterer [Tue, 30 Oct 2018 23:55:17 +0000 (09:55 +1000)]
tools: allow measuring single-touch ABS_PRESSURE

Fixes #173

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: fix a clang warning
Peter Hutterer [Mon, 5 Nov 2018 04:22:46 +0000 (14:22 +1000)]
test: fix a clang warning

test/test-misc.c:1065:28: warning: Value stored to 't' during its
initialization is never read

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: drop a superfluous linebreak in the list-quirks output
Peter Hutterer [Mon, 5 Nov 2018 04:12:00 +0000 (14:12 +1000)]
tools: drop a superfluous linebreak in the list-quirks output

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotools: handle the EventCodeDisable quirk in the quirks tool
Peter Hutterer [Mon, 5 Nov 2018 03:52:41 +0000 (13:52 +1000)]
tools: handle the EventCodeDisable quirk in the quirks tool

This caused an assertion

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoGitlab CI: use the docker:stable image for image creation
Peter Hutterer [Fri, 2 Nov 2018 02:24:55 +0000 (12:24 +1000)]
Gitlab CI: use the docker:stable image for image creation

alpine:latest which is now the default image doesn't docker installed by
default. apk add docker results in failures
Warning: failed to get default registry endpoint from daemon

last time all this worked was when we defaulted to the docker:stable image,
see https://gitlab.freedesktop.org/libinput/libinput/-/jobs/8316

Let's switch back to that and move on with our lives.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agogitlab CI: buildah requires the transport protocol
Peter Hutterer [Fri, 2 Nov 2018 02:03:27 +0000 (12:03 +1000)]
gitlab CI: buildah requires the transport protocol

Executing the script as illustrated sends it to nowhere (localhost maybe?),
prepending docker:// makes it recognize the hostname correctly and actually
upload it to gitlab.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agogitlab CI: swap Fedora 27 for Fedora 29
Peter Hutterer [Fri, 2 Nov 2018 00:20:53 +0000 (10:20 +1000)]
gitlab CI: swap Fedora 27 for Fedora 29

And run all the special stuff we currently run on F28 on F29

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoDon't disable keyboard for Lenovo X230 Tablet in tablet mode
Ryan Walklin [Thu, 1 Nov 2018 17:42:45 +0000 (17:42 +0000)]
Don't disable keyboard for Lenovo X230 Tablet in tablet mode
This also disables the special buttons on the tablet screen. Re-enabling to allow screen rotation.

5 years agoquirks: switch a few model quirks over to use the new evcode disabling
Peter Hutterer [Fri, 19 Oct 2018 05:27:20 +0000 (15:27 +1000)]
quirks: switch a few model quirks over to use the new evcode disabling

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: add the ability to disable custom event codes/types
Peter Hutterer [Fri, 19 Oct 2018 02:17:03 +0000 (12:17 +1000)]
quirks: add the ability to disable custom event codes/types

This is a more flexible approach than adding a model flag and the C code to
just call libevdev_disable_event_code(). There's a risk users will think this
is is a configuration API but there are some devices out there (e.g. the
Microsoft Sculpt mouse) that need a more generic solution.

Case in point: the Sculpt mouse insists on holding BTN_SIDE down at all times.
We cannot ship any quirks for that device because we only have the receiver's
generic VID/PID. So a local override is required, but we might as well make
that one generic enough to catch other devices too in the future.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoevdev: log the wheel click angle setting
Peter Hutterer [Mon, 29 Oct 2018 03:42:19 +0000 (13:42 +1000)]
evdev: log the wheel click angle setting

Log if we use a non-default click angle setting, makes it easier to debug
this. The condition to add the log was a bit unwieldly to read, so this also
factors out the property names to temporary variables.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agolibinput 1.12.2 1.12.2
Peter Hutterer [Wed, 24 Oct 2018 05:23:37 +0000 (15:23 +1000)]
libinput 1.12.2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotest: move the custom parser test structs into the functions
Peter Hutterer [Fri, 19 Oct 2018 01:25:42 +0000 (11:25 +1000)]
test: move the custom parser test structs into the functions

No need to pollute the namespace here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoRemove obsolete HAVE_CONFIG_H check
Peter Hutterer [Tue, 16 Oct 2018 05:37:22 +0000 (15:37 +1000)]
Remove obsolete HAVE_CONFIG_H check

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: disable debouncing on the VMware Virtual mice
Peter Hutterer [Thu, 11 Oct 2018 00:21:54 +0000 (10:21 +1000)]
quirks: disable debouncing on the VMware Virtual mice

At least on MacBooks, the host emulates two clicks 8ms apart in response to a
doubletap. Those clicks are filtered by our debouncing code.

Since these are emulated devices anyway and by definition cannot have a stuck
button, let's tag them so we don't enable the debouncing code. If the button
of the physical device is stuck, that's a problem that needs to be fixed in
the host system.

Fixes #158

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: don't disable keyboard for Lenovo X60 Tablet in tablet mode
Michał Kopeć [Thu, 18 Oct 2018 20:08:28 +0000 (22:08 +0200)]
quirks: don't disable keyboard for Lenovo X60 Tablet in tablet mode

Lenovo X60 tablet has bezel buttons that are bound to the keyboard.
They should not be disabled.

5 years agoquirks: use basename in a POSIX compliant way
Greg V [Sun, 14 Oct 2018 12:15:15 +0000 (15:15 +0300)]
quirks: use basename in a POSIX compliant way

The POSIX version of basename modifies the string (and therefore crashes
on static strings), so use safe_strdup before calling it.

glibc provides a POSIX version when libgen.h is included.
FreeBSD 12 provides a POSIX version when nothing is included, which was
causing a segfault.

Using the POSIX version correctly is the right way to avoid any such issues.

5 years agotest: add tablet-mode suspend/resume keyboard and touchpad tests
Peter Hutterer [Tue, 9 Oct 2018 01:07:02 +0000 (11:07 +1000)]
test: add tablet-mode suspend/resume keyboard and touchpad tests

Related #155

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotouchpad: handle a touch ending and restarting in the same frame
Peter Hutterer [Mon, 15 Oct 2018 04:45:06 +0000 (14:45 +1000)]
touchpad: handle a touch ending and restarting in the same frame

If a touch ends and starts again in the same frame, our touch count gets out
of whack. This later triggers an assertion when the tap touch count mismatches
the real tap count.

E: 0.105005 0003 0039 -001      # EV_ABS / ABS_MT_TRACKING_ID   -1
E: 0.105005 0003 0035 8447      # EV_ABS / ABS_MT_POSITION_X    8447
E: 0.105005 0003 0036 4479      # EV_ABS / ABS_MT_POSITION_Y    4479
E: 0.105005 0001 014a 0000      # EV_KEY / BTN_TOUCH            0
E: 0.105005 0001 0145 0000      # EV_KEY / BTN_TOOL_FINGER      0
E: 0.105005 0003 0039 0074      # EV_ABS / ABS_MT_TRACKING_ID   74
E: 0.105005 0003 0035 8388      # EV_ABS / ABS_MT_POSITION_X    8388
E: 0.105005 0003 0036 4480      # EV_ABS / ABS_MT_POSITION_Y    4480
E: 0.105005 0001 014a 0001      # EV_KEY / BTN_TOUCH            1
E: 0.105005 0001 0145 0001      # EV_KEY / BTN_TOOL_FINGER      1
E: 0.105005 0003 0000 8388      # EV_ABS / ABS_X                8388
E: 0.105005 0003 0001 4480      # EV_ABS / ABS_Y                4480
E: 0.105005 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +19ms

This is a kernel bug but let's paper over here because otherwise we crash and
that's considered impolite.

Fixes #161

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agotouchpad: only log the touch state if we have something to log
Peter Hutterer [Mon, 15 Oct 2018 03:47:29 +0000 (13:47 +1000)]
touchpad: only log the touch state if we have something to log

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: fix palm size threshold for the Wacom PTH660
Peter Hutterer [Wed, 10 Oct 2018 06:24:36 +0000 (16:24 +1000)]
quirks: fix palm size threshold for the Wacom PTH660

Copy/paste error in the hwdb to quirks transition

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
5 years agoquirks: suppress tablet-mode for Lenovo X220T keyboard. Resolves #154
Matthias Mayr [Mon, 8 Oct 2018 21:21:36 +0000 (23:21 +0200)]
quirks: suppress tablet-mode for Lenovo X220T keyboard. Resolves #154

The special bezel buttons are associated to the keyboard and would
therefore mistakenly be deactivated as well. See #154.

5 years agotouchpad: avoid motion events when moving one finger into AREA
Peter Hutterer [Wed, 3 Oct 2018 22:34:33 +0000 (08:34 +1000)]
touchpad: avoid motion events when moving one finger into AREA

If a 2fg scroll motion starts with both fingers in the bottom button area and
one finger moves into the main area before the other, we used to send motion
events for that finger. Once the second finger moved into the main area the
scroll was detected correctly but by then the cursor may have moved out of the
intended focus area.

We have two transitions where we may start sending motion events: when we move
out of the bottom area and when the finger moves by more than 5mm within the
button area. In both cases, check for any touches that are in the
bottom area and started at the 'same' time as our moving touch. Mark those as
'moved' to release them for gestures so we get the right finger count and
axis/gesture events instead of just motion events.

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