platform/upstream/libinput.git
7 years agotouchpad: drop the unused touchpad_model enum
Peter Hutterer [Mon, 24 Apr 2017 05:58:22 +0000 (15:58 +1000)]
touchpad: drop the unused touchpad_model enum

A leftover from synaptics where we do this detection in the driver. libinput
pushes this to the hwdb and sets the model flags accordingly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: add documentation for touchpad pressure detection
Peter Hutterer [Wed, 19 Apr 2017 04:11:45 +0000 (14:11 +1000)]
doc: add documentation for touchpad pressure detection

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: move the pressure range to a hwdb entry
Peter Hutterer [Wed, 19 Apr 2017 03:45:34 +0000 (13:45 +1000)]
touchpad: move the pressure range to a hwdb entry

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: quote the xyes for the libunwind check
Peter Hutterer [Tue, 25 Apr 2017 22:31:15 +0000 (08:31 +1000)]
configure.ac: quote the xyes for the libunwind check

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: move some checks out of the libwacom section
Peter Hutterer [Tue, 25 Apr 2017 22:30:44 +0000 (08:30 +1000)]
configure.ac: move some checks out of the libwacom section

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoRename README to README.md, include properly from doxygen
Peter Hutterer [Thu, 20 Apr 2017 05:54:55 +0000 (15:54 +1000)]
Rename README to README.md, include properly from doxygen

As of doxygen 1.8.3 (Dec 2012) doxygen can include a README.md directly as
mainpage. This avoids the ugly doxygen bits we have in the current README.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoAdd doc to discourage use of libinput_device_get_output_name()
Peter Hutterer [Thu, 20 Apr 2017 22:47:31 +0000 (08:47 +1000)]
Add doc to discourage use of libinput_device_get_output_name()

This is a leftover from when libinput was part of weston and we could
interpret properties correctly. Realistically, the only way this could work
with libinput as external library is if we define precisely what the
definition of an output is. Practically, it's a lot easier to just throw up
our hands and leave it all to the caller.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
7 years agoevdev: improve default scroll button detection
Peter Hutterer [Mon, 27 Feb 2017 01:20:14 +0000 (11:20 +1000)]
evdev: improve default scroll button detection

Try to guess the default scroll buttons a bit better. Right now we default to
scroll button 0 (disabled) whenever a device doesn't have a middle button but
we might as well cast a wider net here as setting a scroll button only has a
direct effect when button scrolling is enabled.

Use the first extra button we find or fall back onto the right button if we
don't have any extra buttons.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: link the seats doc from the seat udev properties
Peter Hutterer [Thu, 20 Apr 2017 10:21:43 +0000 (20:21 +1000)]
doc: link the seats doc from the seat udev properties

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: update man page for debug-events --show-keycodes flag
Peter Hutterer [Thu, 20 Apr 2017 01:04:44 +0000 (11:04 +1000)]
tools: update man page for debug-events --show-keycodes flag

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: fix typo in list-devices man page
Peter Hutterer [Thu, 20 Apr 2017 00:43:01 +0000 (10:43 +1000)]
tools: fix typo in list-devices man page

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: drop superfluous </pre> tag
Peter Hutterer [Wed, 19 Apr 2017 04:11:25 +0000 (14:11 +1000)]
doc: drop superfluous </pre> tag

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: drop auto-detection of features
Peter Hutterer [Tue, 4 Apr 2017 01:10:29 +0000 (11:10 +1000)]
configure.ac: drop auto-detection of features

During the work with meson I realised auto-detection is not a good solution.
Our dependencies should be well-defined for what is considered 'normal' and
explicitly defined for any deviation from that normal build.

The normal build includes docs, tools, tests, etc. because we expect
developers to find errors in any of those. A distribution build may exclude
some of these bits, but it should be explicitly specified by the distribution
rather than having our build system guess what's not needed.

This patch drops any auto-detection of features and replaces it with a hard
yes/no.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoFix build instructions for openSUSE
Nate Graham [Mon, 3 Apr 2017 14:51:22 +0000 (08:51 -0600)]
Fix build instructions for openSUSE

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotablet: remove useless self-assignment
Peter Hutterer [Sat, 1 Apr 2017 05:37:24 +0000 (15:37 +1000)]
tablet: remove useless self-assignment

Introduced in 230af3f9fcf

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoudev: set size hint for the Apple Magic Trackpad
Peter Hutterer [Thu, 30 Mar 2017 05:04:13 +0000 (15:04 +1000)]
udev: set size hint for the Apple Magic Trackpad

Not required because it sets the resolution in the kernel, but we have a
generic "Apple touchpads" rule with a different size. Even though libinput
won't use this property, let's override the generic one with the right
dimensions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: unset MOUSE_DPI for the apple magic mouse
Peter Hutterer [Thu, 30 Mar 2017 02:50:13 +0000 (12:50 +1000)]
test: unset MOUSE_DPI for the apple magic mouse

As of systemd commit f013e99e160f385a0c02793c612ef4c8a8ffc4d7, ID_BUS is now
set for all bluetooth devices, not just those with subsystem bluetooth. This
affects the Apple Magic Mouse and sets the systemd hwdb's MOUSE_DPI value.

That value is different to the test results we currently have, causing some
tests to fail because different deltas are generated (e.g.
pointer_scroll_button).

Our udev rules are prefixed 99 and thus apply after the various system rules.
So we can't easily set ID_BUS in our rule because it'll apply after
70-mouse.rules checks for the bustype. So we'd have to detect systemd version
or so, but the easy way is to simply force MOUSE_DPI to the empty value. For
our test cases it doesn't matter if the DPI is set correctly anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix udev rule for click count device
Peter Hutterer [Thu, 30 Mar 2017 02:09:06 +0000 (12:09 +1000)]
test: fix udev rule for click count device

Assigned click counts to other, unrelated devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: don't try to unhover touches in NONE state
Peter Hutterer [Wed, 29 Mar 2017 00:36:30 +0000 (10:36 +1000)]
touchpad: don't try to unhover touches in NONE state

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: highlight the various state machines with colors
Peter Hutterer [Tue, 28 Mar 2017 01:48:52 +0000 (11:48 +1000)]
test: highlight the various state machines with colors

Makes visual identification easier

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: detect linebreaks in log messages
Peter Hutterer [Tue, 28 Mar 2017 01:38:12 +0000 (11:38 +1000)]
test: detect linebreaks in log messages

If a single log message is composed of multiple calls (as are all from
evdev_log_*), don't prefix multiple times.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add color to litest verbose output
Peter Hutterer [Tue, 28 Mar 2017 01:31:16 +0000 (11:31 +1000)]
test: add color to litest verbose output

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: align litest output messages
Peter Hutterer [Tue, 28 Mar 2017 01:23:15 +0000 (11:23 +1000)]
test: align litest output messages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: drop unused variable
Peter Hutterer [Mon, 27 Mar 2017 22:55:35 +0000 (08:55 +1000)]
test: drop unused variable

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: fix typo in log message
Peter Hutterer [Tue, 28 Mar 2017 03:13:46 +0000 (13:13 +1000)]
evdev: fix typo in log message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: use 'required_argument'/'no_argument' for getopt_long
Peter Hutterer [Fri, 24 Mar 2017 00:11:02 +0000 (10:11 +1000)]
tools: use 'required_argument'/'no_argument' for getopt_long

See the getopt_long example, makes the code more obvious

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/tablet-wobbly-lines-v2'
Peter Hutterer [Thu, 23 Mar 2017 00:18:19 +0000 (10:18 +1000)]
Merge branch 'wip/tablet-wobbly-lines-v2'

7 years agotablet: add axis smoothing
Peter Hutterer [Tue, 7 Mar 2017 06:00:45 +0000 (16:00 +1000)]
tablet: add axis smoothing

Taking the tablet events as-is produces the occasional wobble in what should
be a straight line. Bug 99961 has a jpg attachment to illustrate that.
Emulate the wacom driver behavior and average x/y across the last 4 values to
smoothen out these dents.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: reset delta and changed axes as soon as we send them
Peter Hutterer [Tue, 7 Mar 2017 07:08:07 +0000 (17:08 +1000)]
tablet: reset delta and changed axes as soon as we send them

We don't have frame events for tablets so we must take care to send the
axis change notifications only once and leave the others as-is. Most of the
axes are absolute so it doesn't really matter, but we need to reset the delta
to make sure clients don't receive the same delta twice.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: add assert that deltas are always 0
Peter Hutterer [Tue, 7 Mar 2017 06:37:55 +0000 (16:37 +1000)]
tablet: add assert that deltas are always 0

The tablet axis struct has a delta field that's only useful for the events,
not for our internal axis handling. Make sure we never set it to anything
nonzero.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: split point vs delta handling up
Peter Hutterer [Tue, 7 Mar 2017 05:32:59 +0000 (15:32 +1000)]
tablet: split point vs delta handling up

Handle the delta in the end once we've updated the device state for all axes.
This requires us to use the device history rather than the current state
delta, and it also requires us to update both x and y whenever an axis change
comes in.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotable: move custom rotation handling into a helper function
Peter Hutterer [Tue, 7 Mar 2017 04:02:53 +0000 (14:02 +1000)]
table: move custom rotation handling into a helper function

This is a bit hard to follow:
- tilt is handled first and if either tilt axis is set we fetch *both* tilt axes
  into tablet->axes.tilt
- rotation is handled second but it only triggers if either tilt axis is
  flagged. as we now guarantee to have both axes in tablet->axes.tilt, we
  can continue with the rotation conversion without needing some other state

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: reshuffle device axis updates
Peter Hutterer [Tue, 7 Mar 2017 03:29:23 +0000 (13:29 +1000)]
tablet: reshuffle device axis updates

This is prep work for axis smoothing. Modify the various helper functions to
just update the state in the tablet and then grab the state later for better
grouping.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: move the axis transforms to the end
Peter Hutterer [Tue, 7 Mar 2017 03:20:32 +0000 (13:20 +1000)]
tablet: move the axis transforms to the end

No functional changes, part of the grouping of tablet axis manipulation vs.
processing of that manipulated state.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: move delta processing down
Peter Hutterer [Tue, 7 Mar 2017 03:17:43 +0000 (13:17 +1000)]
tablet: move delta processing down

No functional changes, this is just to group the calls that modify tablet axis
state together and move the bits that rely on this state (but don't modify it)
to the bottom.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: add a motion history
Peter Hutterer [Tue, 7 Mar 2017 03:11:51 +0000 (13:11 +1000)]
tablet: add a motion history

Stores the processed axes values in a history 4 events deep. Currently unused
but will be used to smoothen out axis values to avoid transducer-caused axis
wobbles.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: move definition of tablet_axes down
Peter Hutterer [Wed, 1 Mar 2017 05:59:44 +0000 (15:59 +1000)]
tablet: move definition of tablet_axes down

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: reshuffle the event sending code
Peter Hutterer [Wed, 1 Mar 2017 05:22:49 +0000 (15:22 +1000)]
tablet: reshuffle the event sending code

The current code modifies a bit of state inside the proximity_tip_down
function which makes for confusing reading. Clean this up by having a bunch of
helper functions for the various events.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: remove unnecessary out-of-proximity check
Peter Hutterer [Thu, 2 Mar 2017 03:17:56 +0000 (13:17 +1000)]
tablet: remove unnecessary out-of-proximity check

This cannot trigger because we'd never get here if out-of-proximity is set,
tablet_flush() will return early.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotablet: drop unnecessary call to reset the changed axes
Peter Hutterer [Wed, 1 Mar 2017 05:42:10 +0000 (15:42 +1000)]
tablet: drop unnecessary call to reset the changed axes

The only code path that leads here would see the changed_axes array zeroed out
in tablet_send_axis_proximity_tip_down_events(), zeroing again is unlikely to
make it more zero.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Ping Cheng <pingc@wacom.com>
7 years agotouchpad: add touchpad pressure state debugging to debug output
Peter Hutterer [Wed, 1 Mar 2017 03:42:09 +0000 (13:42 +1000)]
touchpad: add touchpad pressure state debugging to debug output

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: libinput 1.7.0 1.7.0
Peter Hutterer [Wed, 22 Mar 2017 23:16:01 +0000 (09:16 +1000)]
configure.ac: libinput 1.7.0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: mark the new log functions as printf-style functions
Peter Hutterer [Wed, 22 Mar 2017 10:59:07 +0000 (20:59 +1000)]
evdev: mark the new log functions as printf-style functions

And fix up the one buggy call we had

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: add pressure ranges for cyapa touchpads
Peter Hutterer [Sun, 12 Mar 2017 23:29:06 +0000 (09:29 +1000)]
touchpad: add pressure ranges for cyapa touchpads

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: print axes, but not capabilities on proximity out
Peter Hutterer [Tue, 21 Mar 2017 01:17:28 +0000 (11:17 +1000)]
tools: print axes, but not capabilities on proximity out

Print the axis values on proximity out because it a) ensures we have the right
values and b) makes the output better aligned with the proximity in, so it's
easier to spot in a log file. But don't print the tool capabilities because
they're unrelated to the prox out anyway and again it makes the output easier
to spot.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add missing linebreak to error message
Peter Hutterer [Tue, 14 Mar 2017 02:24:36 +0000 (12:24 +1000)]
test: add missing linebreak to error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: fix tablet touch arbitration case
Peter Hutterer [Tue, 14 Mar 2017 02:04:06 +0000 (12:04 +1000)]
test: fix tablet touch arbitration case

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: don't use the same mouse twice
Peter Hutterer [Tue, 14 Mar 2017 01:23:55 +0000 (11:23 +1000)]
test: don't use the same mouse twice

No effect since we don't care about the mouse itself. But when running
on kernels without uinput's UI_GET_SYSNAME this can cause misdetection of
the uinput device and test case failures. Simply picking a differently named
device avoids that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: libinput 1.7rc2 1.6.902
Peter Hutterer [Wed, 8 Mar 2017 23:50:06 +0000 (09:50 +1000)]
configure.ac: libinput 1.7rc2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoconfigure.ac: set AC_CONFIG_AUX_DIR
Peter Hutterer [Wed, 8 Mar 2017 21:50:32 +0000 (07:50 +1000)]
configure.ac: set AC_CONFIG_AUX_DIR

If not set, libtool will search directories up to ../.. for an install-sh and
then dump the aux files there. This caused a couple of problems with the xorg
release.sh script that now uses worktrees but is generally bad behaviour
because we can't guarantee that we're not inside some other repository.

Set AC_CONFIG_AUX_DIR to avoid this behavior.

See https://lists.freedesktop.org/archives/xorg-devel/2017-March/053006.html

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agodoc: expand on the default tap settings
Peter Hutterer [Thu, 9 Mar 2017 01:03:49 +0000 (11:03 +1000)]
doc: expand on the default tap settings

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: drop ABS_MT_PRESSURE from the bcm5974
Peter Hutterer [Wed, 8 Mar 2017 04:44:26 +0000 (14:44 +1000)]
test: drop ABS_MT_PRESSURE from the bcm5974

This device only sends ABS_PRESSURE

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: expand build instructinos
Peter Hutterer [Wed, 8 Mar 2017 04:36:56 +0000 (14:36 +1000)]
doc: expand build instructinos

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: add elantech-specific pressure values
Peter Hutterer [Mon, 6 Mar 2017 04:31:40 +0000 (14:31 +1000)]
touchpad: add elantech-specific pressure values

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotouchpad: ignore hovering touches for the software button state
Peter Hutterer [Wed, 1 Mar 2017 01:26:06 +0000 (11:26 +1000)]
touchpad: ignore hovering touches for the software button state

If a touch started hovering in the main area, the button state would start
with AREA and never move to the real button state, despite the finger
triggering the pressure thresholds correctly in one of the areas.

This could even happen across touch sequences if a touch went below pressure
in the software button area, it changed to hovering and the button state
changed to NONE. On the next event, the touch is still hovering and the
current position of the touch is taken for the button state machine.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: fix printing of tablet coordinates
Peter Hutterer [Tue, 28 Feb 2017 06:44:17 +0000 (16:44 +1000)]
tools: fix printing of tablet coordinates

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: reduce minimum height for horiz edge scrolling to 40mm
Peter Hutterer [Mon, 27 Feb 2017 01:02:06 +0000 (11:02 +1000)]
touchpad: reduce minimum height for horiz edge scrolling to 40mm

Introduced in commit 8e7f99c27ab39 we only allowed horizontal edge scrolling
on devices larger than 50mm to leave enough reactive space on the touchpad.
Looking at a ruler, a 50mm high touchpad is still large enough to leave the
bottom 7mm as an horizontal edge scroll area. Reduce the minimum size to 40mm
instead, that's closer to where it starts to get a bit iffy.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: fix two comment typos
Peter Hutterer [Mon, 27 Feb 2017 05:24:09 +0000 (15:24 +1000)]
tools: fix two comment typos

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/log-function-rework'
Peter Hutterer [Mon, 27 Feb 2017 01:27:41 +0000 (11:27 +1000)]
Merge branch 'wip/log-function-rework'

7 years agotools: add mode group info to libinput-list-devices
Peter Hutterer [Fri, 24 Feb 2017 00:15:23 +0000 (10:15 +1000)]
tools: add mode group info to libinput-list-devices

We don't cater for the special case of groups having a different number of
modes, there is no hardware right now that does that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoFix a crash when requesting invalid mode group indices
Peter Hutterer [Fri, 24 Feb 2017 00:10:44 +0000 (10:10 +1000)]
Fix a crash when requesting invalid mode group indices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: add "--quiet" option to only log libinput messages
Peter Hutterer [Fri, 24 Feb 2017 06:11:46 +0000 (16:11 +1000)]
tools: add "--quiet" option to only log libinput messages

Supresses any printf statements from the tool itself, i.e. it skips printing
any of the events.

Makes it easier to debug the internal state since it's not intermixed with a
whole lot of messages about the events that are generated. Best combined with
--verbose (yes, hilarious, isn't it...)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
7 years agotimer: prefix all messages with "timer:"
Peter Hutterer [Fri, 24 Feb 2017 06:03:44 +0000 (16:03 +1000)]
timer: prefix all messages with "timer:"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: standardize log messsages
Peter Hutterer [Mon, 13 Feb 2017 04:17:52 +0000 (14:17 +1000)]
evdev: standardize log messsages

Prefix device log messages with the device's sysname so it's more obvious
where the messages are coming from. This makes it much easier to grep for a
specific device's messages but also adds some identifier to messages that
were previously without any identifier (e.g. all the state machine debugging)

All info and error messages also automatically prefix the device name, so
those messages are standardised too, e.g

an info message now:
  event4  - SynPS/2 Synaptics TouchPad: is tagged by udev as: Touchpad
a debug message now:
  event4  - using pressure-based touch detection

And since this required changing a lot of the strings in messages anyway,
polish a few minor things too.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: move the 'device removed' message to the evdev backend
Peter Hutterer [Mon, 13 Feb 2017 05:11:58 +0000 (15:11 +1000)]
evdev: move the 'device removed' message to the evdev backend

Preparation work for standardizing log messages better

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
7 years agoconfigure.ac: libinput 1.7rc1 1.6.901
Peter Hutterer [Thu, 23 Feb 2017 00:49:11 +0000 (10:49 +1000)]
configure.ac: libinput 1.7rc1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: add a custom css for local overrides
Peter Hutterer [Wed, 22 Feb 2017 21:16:56 +0000 (07:16 +1000)]
doc: add a custom css for local overrides

Easier to track if we leave the original files alone. Actual changes to the
doxygen style:

* indent <dd> blocks
* hide the navigation sub-items. Our current style expands the full navigation
  menu but File-list, etc. is mostly useless and just wastes space.
* force some space below the main bar
* change the header sizes around a bit. Primary goal here: making <h1> smaller
  than the title

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: allow custom styles to overide the bootstrap style
Peter Hutterer [Wed, 22 Feb 2017 21:14:39 +0000 (07:14 +1000)]
doc: allow custom styles to overide the bootstrap style

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: disable the search engine/search box
Peter Hutterer [Wed, 22 Feb 2017 21:36:06 +0000 (07:36 +1000)]
doc: disable the search engine/search box

It was just floating around lonely there and I doubt anyone really used it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: minor documentation fix
Peter Hutterer [Wed, 22 Feb 2017 21:04:55 +0000 (07:04 +1000)]
doc: minor documentation fix

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add a has_slider check for the airbrush tool
Peter Hutterer [Wed, 22 Feb 2017 00:00:17 +0000 (10:00 +1000)]
test: add a has_slider check for the airbrush tool

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoMerge branch 'wip/logitech-marble-mouse-middleemulation'
Peter Hutterer [Tue, 21 Feb 2017 21:56:07 +0000 (07:56 +1000)]
Merge branch 'wip/logitech-marble-mouse-middleemulation'

7 years agotools: print accel profiles up to 1000 mm/s
Peter Hutterer [Tue, 21 Feb 2017 04:35:18 +0000 (14:35 +1000)]
tools: print accel profiles up to 1000 mm/s

The range that matters is 0-200, maybe up to 400 if you account for really
fast movements. But to match other, published, accel curves default to up to
1000 mm/s. It's easy enough in gnuplot to reduce the range.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: print the key as -1 for obfuscated keys
Peter Hutterer [Tue, 21 Feb 2017 00:10:18 +0000 (10:10 +1000)]
tools: print the key as -1 for obfuscated keys

Missing from 8c1aa1de where we hid the human-readable parts but the keycode
itself is still enough information to recover the typed bits.
Print it as -1 as that keycode doesn't exist for real keys so it stands out
nicely.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoAdd the matching @see tags to the accel config
Peter Hutterer [Mon, 20 Feb 2017 23:21:56 +0000 (09:21 +1000)]
Add the matching @see tags to the accel config

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoevdev: don't provide button scrolling on absolute pointer devices
Peter Hutterer [Mon, 20 Feb 2017 06:29:02 +0000 (16:29 +1000)]
evdev: don't provide button scrolling on absolute pointer devices

This may be a feature for the future but for now be honest and don't claim
that button-based scrolling is available, it's not hooked up in the absolute
code path.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: add "READY" state to button scrolling
Peter Hutterer [Mon, 20 Feb 2017 03:32:07 +0000 (13:32 +1000)]
evdev: add "READY" state to button scrolling

Before, our states were idle, button down and scrolling. This adds a state
where the button is down and the timeout has expired (i.e. we're ready to send
scroll events) but we haven't actually sent any events anymore.

If the button is released in this state, we generate a normal click event.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: convert button scrolling into a state machine
Peter Hutterer [Mon, 20 Feb 2017 03:31:23 +0000 (13:31 +1000)]
evdev: convert button scrolling into a state machine

No functional changes, preparation work for adding another state.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: add tests for middle button + button scrolling on BTN_LEFT
Peter Hutterer [Mon, 20 Feb 2017 03:09:57 +0000 (13:09 +1000)]
test: add tests for middle button + button scrolling on BTN_LEFT

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: add state debugging to button scrolling
Peter Hutterer [Mon, 20 Feb 2017 03:08:58 +0000 (13:08 +1000)]
evdev: add state debugging to button scrolling

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: rename define for button scroll timeout
Peter Hutterer [Mon, 20 Feb 2017 02:56:06 +0000 (12:56 +1000)]
evdev: rename define for button scroll timeout

This is merely 'button scrolling' now, only the original implementation was
middle button only. And to avoid confusing with the middle button emulation,
drop "MIDDLE" from the define.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: add quirk for Logitech Marble Mouse
Peter Hutterer [Thu, 16 Feb 2017 22:39:51 +0000 (08:39 +1000)]
evdev: add quirk for Logitech Marble Mouse

Device needs BTN_MIDDLE disabled, this way middle button emulation is present
by default.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoevdev: allow button scrolling on the L/R button with middle emulation active
Peter Hutterer [Sun, 19 Feb 2017 23:14:42 +0000 (09:14 +1000)]
evdev: allow button scrolling on the L/R button with middle emulation active

This worked before, but triggered a negative timer bug. When one of the
physical L/R buttons is pressed with middle button emulation enabled, the
flow is:
1) phys left button down
2) middle button state machine discards events, sets timer
3) timer expires or button is released
4) middle button state machine sends button press with time from 1)
5) emulation code sees button press, sets timer for scroll emulation
6) timer logs bug because (original-button-time + timeout) is less than now()

That log_bug_libinput() warning fails the tests but works otherwise.

Allow this situation explicitly, on some devices we only have left and right
buttons and no scroll wheel, so having middle button emulation *and*
button-scroll working is useful.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: fix the pointer scroll-defaults test
Peter Hutterer [Sun, 19 Feb 2017 23:26:05 +0000 (09:26 +1000)]
test: fix the pointer scroll-defaults test

The button-scroll by default behavior is only true on devices with a middle
button.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: skip two tests when middle button is missing
Peter Hutterer [Fri, 17 Feb 2017 00:40:34 +0000 (10:40 +1000)]
test: skip two tests when middle button is missing

And disable middle button emulation for this test, it would mess with the test
results.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: fix middle button defaults test
Peter Hutterer [Fri, 17 Feb 2017 00:32:55 +0000 (10:32 +1000)]
test: fix middle button defaults test

This failed on devices without a middle button, we just didn't have a test
device to trigger this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: check the libinput device for BTN_MIDDLE, not the libevdev device
Peter Hutterer [Fri, 17 Feb 2017 00:38:09 +0000 (10:38 +1000)]
test: check the libinput device for BTN_MIDDLE, not the libevdev device

We don't have the same libevdev context that libinput has so if libinput
disables/enables event codes we don't see that and may get unexpected
behavior in the test.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: size without decimals is good enough
Peter Hutterer [Sun, 19 Feb 2017 21:24:47 +0000 (07:24 +1000)]
tools: size without decimals is good enough

Sub-mm precision isn't needed for libinput-list-devices' size field.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agoAdded missing button range for pad on CTH-680
Sakse Dalum [Mon, 13 Feb 2017 06:57:07 +0000 (16:57 +1000)]
Added missing button range for pad on CTH-680

This device has BTN_LEFT, BTN_RIGHT, BTN_FORWARD and BTN_BACK, add the
missing range to the pad init function.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotest: fix udev rule for waltop tablet test device
Peter Hutterer [Thu, 16 Feb 2017 23:48:28 +0000 (09:48 +1000)]
test: fix udev rule for waltop tablet test device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: print errors as red, info as highlighted
Peter Hutterer [Mon, 13 Feb 2017 06:28:28 +0000 (16:28 +1000)]
tools: print errors as red, info as highlighted

makes it easier to filter out debugging messages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotools: don't print device options on device removed
Peter Hutterer [Mon, 13 Feb 2017 23:07:33 +0000 (09:07 +1000)]
tools: don't print device options on device removed

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotools: hide key codes by default
Peter Hutterer [Mon, 13 Feb 2017 01:07:03 +0000 (11:07 +1000)]
tools: hide key codes by default

libinput-debug-events prints keycodes as they come in. This makes it dangerous
to be run by users (especially in the background) because it will leak
sensitive information as it is typed. Obfuscate the base set of keycodes
by default, require a --show-keycodes switch to show it.

The few times we actually need the keycodes, we can run the switch in the
debugging tool.

This does not affect keys outside of the main block on the keyboard (F-keys,
multimedia keys).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agodoc: add a page "what is libinput"
Peter Hutterer [Mon, 30 Jan 2017 23:45:44 +0000 (09:45 +1000)]
doc: add a page "what is libinput"

This will eventually feature the architecture diagrams, etc. But for now it's
mostly just a list of what will be and what won't be supported.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: link to tapping page from the FAQ
Peter Hutterer [Mon, 13 Feb 2017 00:31:40 +0000 (10:31 +1000)]
doc: link to tapping page from the FAQ

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agodoc: make the tap-to-click default setting a separate section
Peter Hutterer [Mon, 13 Feb 2017 00:45:47 +0000 (10:45 +1000)]
doc: make the tap-to-click default setting a separate section

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotouchpad: drop 'is blacklisted' check for dwt pairing
Peter Hutterer [Fri, 10 Feb 2017 00:39:25 +0000 (10:39 +1000)]
touchpad: drop 'is blacklisted' check for dwt pairing

dwt is needed on internal touchpads only and those external ones that are a
combo device. This also now gives us the same check for palm detect and dwt.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agotouchpad: add a hwdb quirk for (external) touchpad/keyboard combos
Peter Hutterer [Fri, 10 Feb 2017 00:30:38 +0000 (10:30 +1000)]
touchpad: add a hwdb quirk for (external) touchpad/keyboard combos

Specify the layout of the combo so we know when to initialize palm detection.

This allows us to drop palm detection on external touchpads otherwise,
replacing the wacom-specific check with something more generic..

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
7 years agoMerge branch 'gcov-tests'
Peter Hutterer [Thu, 9 Feb 2017 02:27:39 +0000 (12:27 +1000)]
Merge branch 'gcov-tests'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
7 years agotest: add tests for tablet tool types
Peter Hutterer [Thu, 9 Feb 2017 01:09:11 +0000 (11:09 +1000)]
test: add tests for tablet tool types

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