platform/upstream/libinput.git
7 years agotools: replace the tap time measuring tool with a python one
Peter Hutterer [Wed, 6 Sep 2017 01:01:49 +0000 (11:01 +1000)]
tools: replace the tap time measuring tool with a python one

A lot easier to process data in python than in C.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-By: Dima Ryazanov <dima@gmail.com>
Tested-By: Dima Ryazanov <dima@gmail.com>
7 years agofallback: log an error if we failed to write the switch event
Peter Hutterer [Thu, 16 Nov 2017 04:50:26 +0000 (14:50 +1000)]
fallback: log an error if we failed to write the switch event

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: fix typo in man page
Peter Hutterer [Tue, 5 Sep 2017 23:32:39 +0000 (09:32 +1000)]
tools: fix typo in man page

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoman: add --enable-middlebutton to debug-events man page
Peter Hutterer [Wed, 15 Nov 2017 03:32:30 +0000 (13:32 +1000)]
man: add --enable-middlebutton to debug-events man page

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: change a log message for consistency
Peter Hutterer [Tue, 14 Nov 2017 05:59:55 +0000 (15:59 +1000)]
touchpad: change a log message for consistency

The other tablet mode notices say "suspending ..."

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoudev: add integration flag for the Lenovo Compact Keyboard with TrackPoint
Peter Hutterer [Tue, 14 Nov 2017 05:53:12 +0000 (15:53 +1000)]
udev: add integration flag for the Lenovo Compact Keyboard with TrackPoint

From https://bugzilla.redhat.com/show_bug.cgi?id=1510814

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: fix axis mixup for the wheel click angles
Peter Hutterer [Mon, 13 Nov 2017 04:27:24 +0000 (14:27 +1000)]
evdev: fix axis mixup for the wheel click angles

vertical wheel is y, not x

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: post a SYN_REPORT after a faked trackpoint button
Peter Hutterer [Mon, 13 Nov 2017 03:29:00 +0000 (13:29 +1000)]
touchpad: post a SYN_REPORT after a faked trackpoint button

This has no real effect at the moment because the fallback interface doesn't
care much about SYN_REPORT, it processes events as they come in. But it's a
bug nonetheless, the process() callback expects correct event frames.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: fix two flake8-3 warnings
Peter Hutterer [Mon, 13 Nov 2017 04:04:03 +0000 (14:04 +1000)]
tools: fix two flake8-3 warnings

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: handle missing evdev/pyudev modules with a better error message
Peter Hutterer [Mon, 13 Nov 2017 04:04:56 +0000 (14:04 +1000)]
tools: handle missing evdev/pyudev modules with a better error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: reduce the number of separate calls to log_msg
Peter Hutterer [Wed, 8 Nov 2017 01:32:35 +0000 (11:32 +1000)]
evdev: reduce the number of separate calls to log_msg

We somewhat expect log message handlers to figure out how to prefix newlines
correctly anyway, but reducing the number of messages printed separately makes
the simple case better.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: when the command isn't installed, print that
Peter Hutterer [Thu, 9 Nov 2017 05:17:37 +0000 (15:17 +1000)]
tools: when the command isn't installed, print that

Makes it more user-friendly to be able to split the tools into multiple
packages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: fix missing words in man page
Peter Hutterer [Thu, 9 Nov 2017 03:51:35 +0000 (13:51 +1000)]
tools: fix missing words in man page

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotimer: require a timer name
Peter Hutterer [Thu, 9 Nov 2017 00:40:25 +0000 (10:40 +1000)]
timer: require a timer name

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotimer: print the error messages in ms, not µs
Peter Hutterer [Thu, 9 Nov 2017 00:39:13 +0000 (10:39 +1000)]
timer: print the error messages in ms, not µs

A lot easier to understand and we're not that precise anyway

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: add an extra linebreak before closing
Peter Hutterer [Thu, 9 Nov 2017 00:32:51 +0000 (10:32 +1000)]
tools: add an extra linebreak before closing

Just puts the ^C from the Ctrl+C on a separate line to make it easier to spot

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add the wmi hotkeys test device
Peter Hutterer [Mon, 6 Nov 2017 05:28:04 +0000 (15:28 +1000)]
test: add the wmi hotkeys test device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotimer: print the time delta unit when the timer offset causes an error
Peter Hutterer [Wed, 8 Nov 2017 04:19:51 +0000 (14:19 +1000)]
timer: print the time delta unit when the timer offset causes an error

Because we use ms in most other things that matter, having µs here can cause
confusion.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: print the timestamps for events when debugging events
Peter Hutterer [Wed, 8 Nov 2017 04:18:06 +0000 (14:18 +1000)]
evdev: print the timestamps for events when debugging events

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add a missing libinput_dispatch() to the debounce_timer test
Peter Hutterer [Wed, 8 Nov 2017 03:52:04 +0000 (13:52 +1000)]
test: add a missing libinput_dispatch() to the debounce_timer test

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: add a FAQ regarding "please add a configuration option"
Peter Hutterer [Wed, 8 Nov 2017 11:38:13 +0000 (21:38 +1000)]
doc: add a FAQ regarding "please add a configuration option"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: move the tap state bug messages to a helper function
Peter Hutterer [Mon, 6 Nov 2017 04:22:06 +0000 (14:22 +1000)]
touchpad: move the tap state bug messages to a helper function

There's no need for a custom error message everywhere, it's better to log the
current state and the event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: reduce the multitap range
Peter Hutterer [Fri, 3 Nov 2017 06:22:54 +0000 (16:22 +1000)]
test: reduce the multitap range

if it works for 3, 4, 5, it'll work for above that too

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agocircle.yml: add libsolv to the fedora packages
Peter Hutterer [Sun, 5 Nov 2017 23:23:45 +0000 (09:23 +1000)]
circle.yml: add libsolv to the fedora packages

Works around the dnf error on the fedora docker image
"BDB1539 Build signature doesn't match environment"

https://bugzilla.redhat.com/show_bug.cgi?id=1483553

Suggested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: Handle LIBINPUT_SWITCH_TABLET_MODE
Stefan Brüns [Fri, 3 Nov 2017 22:01:23 +0000 (23:01 +0100)]
tools: Handle LIBINPUT_SWITCH_TABLET_MODE

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: Show gesture/switch capabilities in list-devices output
Stefan Brüns [Fri, 3 Nov 2017 22:22:15 +0000 (23:22 +0100)]
tools: Show gesture/switch capabilities in list-devices output

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/touchpad-hysteresis-issues-v2'
Peter Hutterer [Fri, 3 Nov 2017 01:00:03 +0000 (11:00 +1000)]
Merge branch 'wip/touchpad-hysteresis-issues-v2'

7 years agotest: mkdir -p the udev rules and hwdb directories
Peter Hutterer [Wed, 1 Nov 2017 04:12:01 +0000 (14:12 +1000)]
test: mkdir -p the udev rules and hwdb directories

Especially /run/udev/rules.d may not exist, causing a test suite failure.

https://bugs.freedesktop.org/show_bug.cgi?id=103527

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoRevert "test: mkdir -p the udev rules and hwdb directories"
Peter Hutterer [Thu, 2 Nov 2017 22:42:08 +0000 (08:42 +1000)]
Revert "test: mkdir -p the udev rules and hwdb directories"

recursive functions are hard...

This reverts commit 8a2177b3ba18f3fd3050afa37cb194bc803ea209.

7 years agodoc: update test suite page for ninja and other recent changes
Peter Hutterer [Thu, 2 Nov 2017 00:23:50 +0000 (10:23 +1000)]
doc: update test suite page for ninja and other recent changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix the device name for the magic mouse test device
Peter Hutterer [Thu, 2 Nov 2017 00:21:46 +0000 (10:21 +1000)]
test: fix the device name for the magic mouse test device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: quote all paths in the doxygen file
Peter Hutterer [Wed, 1 Nov 2017 04:54:59 +0000 (14:54 +1000)]
doc: quote all paths in the doxygen file

https://bugs.freedesktop.org/show_bug.cgi?id=103532

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agocircle.yml: add ninja dist to tests
Peter Hutterer [Wed, 1 Nov 2017 01:19:08 +0000 (11:19 +1000)]
circle.yml: add ninja dist to tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: if we don't have a uinput device node, skip the test suite
Peter Hutterer [Wed, 1 Nov 2017 04:19:21 +0000 (14:19 +1000)]
test: if we don't have a uinput device node, skip the test suite

When running ninja dist in a container, we cannot create devices.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: mkdir -p the udev rules and hwdb directories
Peter Hutterer [Wed, 1 Nov 2017 04:12:01 +0000 (14:12 +1000)]
test: mkdir -p the udev rules and hwdb directories

Especially /run/udev/rules.d may not exist, causing a test suite failure.

https://bugs.freedesktop.org/show_bug.cgi?id=103527

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: allow for multiple paired keyboards
Peter Hutterer [Mon, 23 Oct 2017 04:34:47 +0000 (14:34 +1000)]
touchpad: allow for multiple paired keyboards

needed for the razer blade keybard which provides multiple event nodes for
one physical device but it's hard/impossible to identify which one is the real
event node we care about.

https://bugs.freedesktop.org/show_bug.cgi?id=103156

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: automatically disable the hysteresis where not required
Peter Hutterer [Thu, 26 Oct 2017 03:56:44 +0000 (13:56 +1000)]
touchpad: automatically disable the hysteresis where not required

Touchpads that require the hysteresis do not have filtering in the firmware
and holding a finger still causes continuous cursor movements. This implies
that we get a continuous stream of events with motion data.

If the finger is on the touchpad but we don't see any motion, the finger is
stationary and the touchpad firmware does filtering. In that case, we don't
need to add a hysteresis on top.

https://bugs.freedesktop.org/show_bug.cgi?id=98839

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: add an enabled toggle to the hysteresis
Peter Hutterer [Thu, 26 Oct 2017 03:27:07 +0000 (13:27 +1000)]
touchpad: add an enabled toggle to the hysteresis

Hardcoded to 'enabled' right now

No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: move hysteresis margin into its own struct
Peter Hutterer [Thu, 26 Oct 2017 03:20:01 +0000 (13:20 +1000)]
touchpad: move hysteresis margin into its own struct

No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: document the change-of-directions issue with the hysteresis
Peter Hutterer [Thu, 26 Oct 2017 03:13:14 +0000 (13:13 +1000)]
evdev: document the change-of-directions issue with the hysteresis

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agolibinput 1.9.1 1.9.1
Peter Hutterer [Mon, 30 Oct 2017 04:58:05 +0000 (14:58 +1000)]
libinput 1.9.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agofallback: fix lid switch event listener being initialized twice
Peter Hutterer [Fri, 27 Oct 2017 05:03:52 +0000 (15:03 +1000)]
fallback: fix lid switch event listener being initialized twice

Once the lid is closed, the keyboard event listener is set up to open the lid
for us on keyboard events. With the right sequence, we can trigger the
listener to be added to the list multiple times, triggering an assert in the
list test code (or an infinite loop in the 1.8 branch).

Conditions:
* SW_LID value 1 - sets up the keyboard listener
* keyboard event - sets lid_is_closed to false
* SW_LID value 0 - is ignored because we're already open
* SW_LID value 1 - sets up the keyboard listener again

https://bugs.freedesktop.org/show_bug.cgi?id=103298

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoudev: drop the version field in device groups
Benjamin Tissoires [Thu, 26 Oct 2017 08:17:06 +0000 (10:17 +0200)]
udev: drop the version field in device groups

The version field is a per device information. We have
no guarantees a touchscreen and a tablet device will share
the same version of the firmware (especially if both
firmwares are from different vendors).

Fixes the touch arbitration for the Dell Canvas 27

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agomeson: require GTK 3.20
Peter Hutterer [Thu, 26 Oct 2017 06:45:24 +0000 (16:45 +1000)]
meson: require GTK 3.20

For GDK_SEAT_CAPABILITY_ALL_POINTING

https://bugs.freedesktop.org/show_bug.cgi?id=103462

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotablet: print what capability is missing when rejecting a device
Peter Hutterer [Thu, 26 Oct 2017 00:10:04 +0000 (10:10 +1000)]
tablet: print what capability is missing when rejecting a device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: cap the edge palm detection zones at 8mm
Peter Hutterer [Mon, 23 Oct 2017 05:30:41 +0000 (15:30 +1000)]
touchpad: cap the edge palm detection zones at 8mm

The main purpose of the edge zone is to detect palms in the area where we
cannot assume a full finger size and thus cannot use any other palm detection
mechanism. 8mm should be large enough that a finger should be detected based
on other properties (size, pressure, ...).

https://bugs.freedesktop.org/show_bug.cgi?id=103330

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoRevert "touchpad: cap the edge palm detection zones at 8mm"
Peter Hutterer [Wed, 25 Oct 2017 04:18:17 +0000 (14:18 +1000)]
Revert "touchpad: cap the edge palm detection zones at 8mm"

This patch only adjusted the left edge, not the right edge which was still on
8%

This reverts commit 3e9e0e2eb18f0eae5ffe2be756903d92b8b88f75.

7 years agotouchpad: cap the edge palm detection zones at 8mm
Peter Hutterer [Mon, 23 Oct 2017 05:30:41 +0000 (15:30 +1000)]
touchpad: cap the edge palm detection zones at 8mm

The main purpose of the edge zone is to detect palms in the area where we
cannot assume a full finger size and thus cannot use any other palm detection
mechanism. 8mm should be large enough that a finger should be detected based
on other properties (size, pressure, ...).

https://bugs.freedesktop.org/show_bug.cgi?id=103330

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
7 years agotest: add a wacom bamboo test device
Peter Hutterer [Fri, 20 Oct 2017 00:39:37 +0000 (10:39 +1000)]
test: add a wacom bamboo test device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix missing BTN_9 for the MobileStudio device
Peter Hutterer [Fri, 20 Oct 2017 04:58:25 +0000 (14:58 +1000)]
test: fix missing BTN_9 for the MobileStudio device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix pid for the 13HDT pad
Peter Hutterer [Fri, 20 Oct 2017 04:55:24 +0000 (14:55 +1000)]
test: fix pid for the 13HDT pad

7 years agolibinput 1.9.0 1.9.0
Peter Hutterer [Thu, 19 Oct 2017 03:40:15 +0000 (13:40 +1000)]
libinput 1.9.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: cut down on excessive logging for palm size
Peter Hutterer [Thu, 19 Oct 2017 02:14:47 +0000 (12:14 +1000)]
touchpad: cut down on excessive logging for palm size

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoutil: add an extra assert for list_insert()
Peter Hutterer [Wed, 18 Oct 2017 05:24:03 +0000 (15:24 +1000)]
util: add an extra assert for list_insert()

If we're adding an element that's not null or not a freshly initialized list,
chances are we haven't removed it from a previous list.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
7 years agotest: unref the litest device *after* removing it from the path interface
Peter Hutterer [Tue, 17 Oct 2017 06:55:27 +0000 (16:55 +1000)]
test: unref the litest device *after* removing it from the path interface

Our own reference may be the last one that's still alive if the context is
currently suspended (litest_suspend()). If we unref before removing it from
the path interface, we access already freed memory.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
7 years agotest: fix a comment in the log_priority test
Peter Hutterer [Tue, 10 Oct 2017 09:09:29 +0000 (19:09 +1000)]
test: fix a comment in the log_priority test

We don't rely that the lid switch doesn't work in this test, but we always
print a few things when a device gets successfully added.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agolibinput 1.8.902 1.8.902
Peter Hutterer [Tue, 10 Oct 2017 02:15:35 +0000 (12:15 +1000)]
libinput 1.8.902

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoFix meson options default values
Peter Hutterer [Mon, 9 Oct 2017 22:04:35 +0000 (08:04 +1000)]
Fix meson options default values

The keyword is 'value', not 'default'. With meson 0.43 this now stops
building.

https://bugs.freedesktop.org/show_bug.cgi?id=103162

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: restore default permissions for a source file
Peter Hutterer [Mon, 9 Oct 2017 03:18:53 +0000 (13:18 +1000)]
tools: restore default permissions for a source file

This was accidentally made 755 as part of e9fc59efc853

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: fix a coverity warning
Peter Hutterer [Mon, 9 Oct 2017 01:27:06 +0000 (11:27 +1000)]
evdev: fix a coverity warning

'rc' is possibly unused

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: always init the log_handler count and reset it last
Peter Hutterer [Fri, 6 Oct 2017 00:41:08 +0000 (10:41 +1000)]
test: always init the log_handler count and reset it last

When running with -j 1 and CK_FORK=no, the log_handler_count is shared between
the tests. The log_priority tests can invoke the log handler during
libinput_unref(), so on the next day the log handler starts with a nonzero log
handler.

Fix this by always initializing it to 0 in the tests we expect it to be zero
and resetting it last.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: add a section for tablet mode switches
Peter Hutterer [Wed, 27 Sep 2017 22:57:37 +0000 (08:57 +1000)]
doc: add a section for tablet mode switches

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: add another item to the FAQ
Peter Hutterer [Wed, 27 Sep 2017 22:47:10 +0000 (08:47 +1000)]
doc: add another item to the FAQ

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: update the GNOME stack graph
Peter Hutterer [Wed, 27 Sep 2017 22:43:38 +0000 (08:43 +1000)]
doc: update the GNOME stack graph

These days it's mutter that controls the input devices, not g-s-d.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agolibinput 1.8.901 1.8.901
Peter Hutterer [Wed, 27 Sep 2017 03:55:07 +0000 (13:55 +1000)]
libinput 1.8.901

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: if we're not root, return with status 77
Peter Hutterer [Wed, 27 Sep 2017 03:50:11 +0000 (13:50 +1000)]
test: if we're not root, return with status 77

exit code 77 signals "skip this test"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agofallback: suspend internal keyboards and trackpoints on tablet-mode switch
Peter Hutterer [Wed, 20 Sep 2017 04:40:59 +0000 (14:40 +1000)]
fallback: suspend internal keyboards and trackpoints on tablet-mode switch

Because on some devices the keyboard is where the fingers are holding the
device when in tablet mode.

https://bugs.freedesktop.org/show_bug.cgi?id=102729

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agofallback: add 'interface' to the fallback interface's method names
Peter Hutterer [Wed, 20 Sep 2017 04:10:49 +0000 (14:10 +1000)]
fallback: add 'interface' to the fallback interface's method names

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: invert an if condition to allow for early return
Peter Hutterer [Wed, 20 Sep 2017 03:19:36 +0000 (13:19 +1000)]
touchpad: invert an if condition to allow for early return

if (foo) {
    everything
}

changed to :

if (!foo)
    return
everything

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agofallback: move the fallback code into a separate file
Peter Hutterer [Tue, 19 Sep 2017 03:57:50 +0000 (13:57 +1000)]
fallback: move the fallback code into a separate file

Split out the fallback-specific device handling from the more generic
evdev-specific handling (which is supposed to be available for all devices).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: rename evdev_key_type to just key_type
Peter Hutterer [Tue, 19 Sep 2017 03:56:43 +0000 (13:56 +1000)]
evdev: rename evdev_key_type to just key_type

This is a fallback-specific private enum, don't pretend it's evdev-related

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: abstract the get_switch_state method
Peter Hutterer [Tue, 19 Sep 2017 03:45:22 +0000 (13:45 +1000)]
evdev: abstract the get_switch_state method

Shove it into the generic dispatch interface so we don't entangle evdev and
fallback.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoUse named initializers for the various dispatch interfaces
Peter Hutterer [Tue, 19 Sep 2017 03:28:58 +0000 (13:28 +1000)]
Use named initializers for the various dispatch interfaces

Better for self-documentation than comments and makes it more obvious if we
initialize something wrongly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: change prefix on some fallback-only methods
Peter Hutterer [Tue, 19 Sep 2017 03:16:22 +0000 (13:16 +1000)]
evdev: change prefix on some fallback-only methods

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/litest-use-sections-for-tests-v2'
Peter Hutterer [Mon, 25 Sep 2017 04:35:46 +0000 (14:35 +1000)]
Merge branch 'wip/litest-use-sections-for-tests-v2'

7 years agofallback: allow for multiple keyboards to toggle the lid switch
Peter Hutterer [Tue, 19 Sep 2017 00:10:22 +0000 (10:10 +1000)]
fallback: allow for multiple keyboards to toggle the lid switch

Previously we only listened for events on the first one to come up, based on
the assumption that there can only be one internal keyboard. The Razer Blade
laptop keyboards come with with multiple event nodes, all looking like a
normal keyboard. The one that comes up first is one for special keys, so
typing on the internal keyboard after a lid switch does not toggle the write
state.

Fix this by allowing for up to 3 keyboard listeners for a lid switch.

https://bugs.freedesktop.org/show_bug.cgi?id=102039

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix test listing
Peter Hutterer [Thu, 21 Sep 2017 05:56:29 +0000 (15:56 +1000)]
test: fix test listing

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix no-device test name handling
Peter Hutterer [Thu, 21 Sep 2017 05:55:18 +0000 (15:55 +1000)]
test: fix no-device test name handling

All these tests were stored with "no device" as test name.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix test listing
Peter Hutterer [Thu, 21 Sep 2017 05:56:29 +0000 (15:56 +1000)]
test: fix test listing

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix no-device test name handling
Peter Hutterer [Thu, 21 Sep 2017 05:55:18 +0000 (15:55 +1000)]
test: fix no-device test name handling

All these tests were stored with "no device" as test name.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: switch to a TEST_DEVICE macro for all the litest test devices
Peter Hutterer [Wed, 20 Sep 2017 23:25:04 +0000 (09:25 +1000)]
test: switch to a TEST_DEVICE macro for all the litest test devices

The test device initialization code was a bit of duplicated boilerplate and
required adding a reference to the devices to the 'devices' list in litest.c.
Automate this with a new TEST_DEVICE macro that adds the devices to a custom
section in the binary, then loops throught that section to get the device out.

This reduces the boilerplate for each test device to just the TEST_MACRO and
the LITEST_foo device enum entry. It also now automates the shortname of the
device.

The device's shortname was standardised in this approach as well, lowercase
and dashes only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add missing newline to an error message
Peter Hutterer [Wed, 20 Sep 2017 23:23:24 +0000 (09:23 +1000)]
test: add missing newline to an error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: drop obsolete semi-mt allocation for the atmel hover device
Peter Hutterer [Wed, 20 Sep 2017 08:52:46 +0000 (18:52 +1000)]
test: drop obsolete semi-mt allocation for the atmel hover device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix the 'all codes' keyboard device
Peter Hutterer [Wed, 20 Sep 2017 23:08:12 +0000 (09:08 +1000)]
test: fix the 'all codes' keyboard device

The ...create() method returned the wrong device, so this one was never
actually used. Once we start using, we get test case failures related to the
device having BTN_foo events as well. For now, just disable those codes so we
have a keyboard with all keys and pass the tests. The rest needs better
fixing.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotimer: flush the timer funcs if our events come in late
Peter Hutterer [Tue, 19 Sep 2017 05:51:09 +0000 (15:51 +1000)]
timer: flush the timer funcs if our events come in late

Avoid processing an event with a time later than the earliest timer expiry. If
libinput_dispatch() isn't called frequently enough, we may have e.g. a tap
timeout happening but read a subsequent input event first. In that case we can
erroneously trigger or miss out on taps, see wrong palm detection, etc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
7 years agotablet: always enable the no-proximity-out quirk on HUION tablets
Peter Hutterer [Wed, 20 Sep 2017 00:50:19 +0000 (10:50 +1000)]
tablet: always enable the no-proximity-out quirk on HUION tablets

And instead disable it when we do get a proximity out.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
7 years agoevdev: update key type check for new key defines
Peter Hutterer [Wed, 20 Sep 2017 23:07:49 +0000 (09:07 +1000)]
evdev: update key type check for new key defines

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoinclude: sync linux kernel header files with 4.12
Peter Hutterer [Wed, 20 Sep 2017 23:05:32 +0000 (09:05 +1000)]
include: sync linux kernel header files with 4.12

To get the new key defines

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: add a comment to the toggle_touch interface
Peter Hutterer [Tue, 19 Sep 2017 03:23:48 +0000 (13:23 +1000)]
evdev: add a comment to the toggle_touch interface

And remove an unnecessary one

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: drop unused #define DEFAULT_TRACKPOINT_ACCEL
Peter Hutterer [Tue, 19 Sep 2017 03:59:06 +0000 (13:59 +1000)]
evdev: drop unused #define DEFAULT_TRACKPOINT_ACCEL

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: drop unused enum value DISPATCH_LID_SWITCH
Peter Hutterer [Tue, 19 Sep 2017 04:00:05 +0000 (14:00 +1000)]
evdev: drop unused enum value DISPATCH_LID_SWITCH

Obsolete since f0f632649066c4fc92ec3178b9da747758cb7bb8

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotablet: support tablet devices without BTN_TOOL_PEN
Peter Hutterer [Mon, 11 Sep 2017 00:32:42 +0000 (10:32 +1000)]
tablet: support tablet devices without BTN_TOOL_PEN

Some devices like the UC Logic WP5540U has BTN_STYLUS but not BTN_TOOL_PEN.
While a kernel bug, let's just handle these correctly anyway.

https://bugs.freedesktop.org/show_bug.cgi?id=102570

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Yay-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
7 years agotablet: add a quirk for the HUION PenTablet that doesn't send proximity out events
Peter Hutterer [Thu, 22 Dec 2016 02:11:43 +0000 (12:11 +1000)]
tablet: add a quirk for the HUION PenTablet that doesn't send proximity out events

Could be fixed in the kernel, but these tablets are effectively abandoned and
fixing them is a one-by-one issue. Let's put the infrastructure in place to
have this fixed once for this type of device and move on.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Yay-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
7 years agotest: remove leftover sleep() for debugging in lid switch test
Peter Hutterer [Tue, 19 Sep 2017 00:51:32 +0000 (10:51 +1000)]
test: remove leftover sleep() for debugging in lid switch test

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: remove duplicate device name in log message
Peter Hutterer [Tue, 12 Sep 2017 00:09:51 +0000 (10:09 +1000)]
evdev: remove duplicate device name in log message

evdev_log_* already writes the device name

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: don't resume a disabled touchpad
Peter Hutterer [Tue, 5 Sep 2017 04:38:53 +0000 (14:38 +1000)]
touchpad: don't resume a disabled touchpad

A touchpad that was disabled by toggling the sendevents option would come back
normally after a lid resume, despite still being nominally disabled.

https://bugzilla.redhat.com/show_bug.cgi?id=1448962

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: add --disable-sendevents option to the debug-events/debug-gui tools
Peter Hutterer [Tue, 5 Sep 2017 04:12:09 +0000 (14:12 +1000)]
tools: add --disable-sendevents option to the debug-events/debug-gui tools

Makes it possible to debug issues with sendevents.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoAdd helper function for time to timeval conversion
Peter Hutterer [Thu, 22 Dec 2016 01:33:19 +0000 (11:33 +1000)]
Add helper function for time to timeval conversion

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/ignore-moved-touches'
Peter Hutterer [Sun, 10 Sep 2017 23:43:24 +0000 (09:43 +1000)]
Merge branch 'wip/ignore-moved-touches'

7 years agoMerge branch 'wip/sw-tablet-mode'
Peter Hutterer [Sun, 10 Sep 2017 23:02:14 +0000 (09:02 +1000)]
Merge branch 'wip/sw-tablet-mode'