Commit graph

2212 commits

Author SHA1 Message Date
Peter Hutterer
17c0049d24 Disable test runs on 'distcheck'
The tests require the creation of udev devices which in turn require root and
usually cause distcheck runs to fail. Add a new option to disable the
*running* of tests at distcheck (we still want to build them).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14 10:14:02 +10:00
Peter Hutterer
dae10bca67 configure.ac: move the udev test path up into the test section
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14 10:13:41 +10:00
Peter Hutterer
ceb6726811 configure.ac: add some comment markers to see the configure.ac sections easier
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14 10:13:24 +10:00
Peter Hutterer
ba75b56c74 configure.ac: move all AM_CONDITIONALs into one place
Makes it easier to see in one go what is conditional in the build.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14 09:59:05 +10:00
Peter Hutterer
8616cc0bb9 configure.ac: libinput 1.5.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-11 13:49:27 +10:00
Hermann Gausterer
92c30b5a71 evdev: fix typo / bugzilla url
Signed-off-by: Hermann Gausterer <git-libinput-2016@mrq1.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-10 09:45:08 +10:00
Peter Hutterer
58c7a9cbf0 evdev: implement support for the MOUSE_WHEEL_CLICK_COUNT property
Not all mice have a click angle with integer degrees. The new
MOUSE_WHEEL_CLICK_COUNT property specifies how many clicks per full rotation,
the angle can be calculated from that.

See https://github.com/systemd/systemd/pull/4440 for more information

CLICK_COUNT overrides CLICK_ANGLE, so we check for the former first and then
fall back to the angle if need be. No changes to the user-facing API.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-04 12:10:52 +10:00
Peter Hutterer
e0ccfc87f0 doc: expand trackpoint pointer acceleration documentation a bit
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-03 14:01:39 +10:00
Peter Hutterer
76008034ca evdev: add hwdb quirk for HP Compaq 6910
Same as the HP Compat 8510, it doesn't send BTN_TOOL_DOUBLETAP/TRIPLETAP. This
may be a general issue with those series but they're 6 years old now, so
it's questionable to spend extra effort detecting them.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-02 21:46:11 +10:00
Peter Hutterer
a58a9de70d evdev: actually ignore joysticks
A joystick has ID_INPUT_JOYSTICK *and* ID_INPUT set, so we need to check for
both.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-02 21:04:03 +10:00
Peter Hutterer
e09705522a udev: add the hwdb_parser.py test from systemd
upstream for this file lives in systemd, any changes to the actual parser
should flow back there.

libinput's matches are fairly simple. We have the various LIBINPUT_MODEL_ tags
that just take a "1" and the two attributes that are dimensions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-02 09:03:48 +10:00
Peter Hutterer
63990614b0 Move touch_notify_frame declaration to the other touch functions
No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28 15:38:30 +10:00
Peter Hutterer
418a910092 Add missing event type checks to libinput_event_gesture_get_base_event
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28 15:38:29 +10:00
Peter Hutterer
3ef9b7fea5 touchpad: check for trackpoint/keyboard at the top of the helpers
No functional changes, just to filter out devices that don't match
immediately.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28 15:38:29 +10:00
Peter Hutterer
a01284a6de touchpad: split the touchpad->keyboard/trackpoint pairing helpers out
No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28 15:38:29 +10:00
Peter Hutterer
b1fa57372c test: add missing comma to horizontal click angle udev rule
Without the comma it now assigns the horizontal click angle property to all
devices.

Introduced in b02acd346b

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-25 12:11:42 +10:00
Peter Hutterer
9959464af7 evdev: add missing space in error message
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-25 10:44:00 +10:00
Peter Hutterer
33ee8d46e6 doc: add a small page about contributing to libinput
To be expanded at some future time...

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-25 10:02:07 +10:00
Peter Hutterer
5bc29e9a51 test: fix clang warning about abs(float)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-25 10:00:58 +10:00
Peter Hutterer
1843c4aeae touchpad: switch from fabs() to abs()
silence clang warning:
evdev-mt-touchpad.c:1017:7: warning: using floating point absolute value
function 'fabs' when argument is of integer type [-Wabsolute-value]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-25 10:00:58 +10:00
Peter Hutterer
ef2f95dfee Mark some internal log functions as printf-style function
Fixes the respective clang warnings

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-25 10:00:58 +10:00
Peter Hutterer
9590fb953f doc: reshuffle the "reporting bugs" page
Split it into several device-specific sections

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-19 10:21:51 +10:00
Eric Engestrom
9f11610eff tools: change pointer to void
This makes it clear that it's not meant to be dereferenced.

CC: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-16 08:27:49 +10:00
Peter Hutterer
31a168abcd doc: specify the https path for mathjax
freedesktop.org always serves https for the documentation. if Mathjax is
pulled in from http, browsers reject it [1]

Let's take the default doxygen value but just add the https to it. In the
future we should just ship a copy of mathjax with our documentation.

[1] https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Wheres-my-beer-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
2016-09-14 16:23:02 +10:00
Peter Hutterer
47b59ca850 configure.ac: libinput 1.5.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-14 14:49:55 +10:00
Peter Hutterer
f43a072d2c udev: fix hwdb match for the HP Stream 11
prefix must be libinput, not evdev

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-14 11:22:30 +10:00
Peter Hutterer
416fa44d80 touchpad: require at least 3 events before enabling trackpoint palm detection
Some trackpoints, notably the one on the Lenovo T460s have a tendency to send
the odd event even when they're not actually used. Trackpoint events trigger
palm detection (see 0210f1fee1) and thus effectively disable the touchpad,
causing the touchpad to appear nonresponsive.

Fix this by requiring at least 3 events from a trackpoint before palm
detection is enabled. For normal use it's hard enough to trigger a single
event anyway so this should not affect the normal use-case.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-09-12 13:50:15 +10:00
Peter Hutterer
38a562e485 test: rename SYNAPTICS_CLICKPAD to SYNAPTICS_CLICKPAD_X220
That's where this device comes from. The x220 is special because it's too
small to trigger some of the features, eg. palm detection. Make this more
obvious by changing to a less generic name.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-09 12:54:01 +10:00
Peter Hutterer
b3e9303449 tools: prefix debug output with '-' on device changes
We print the sysname, but it's not always obvious when there's an event from
another device within the stream from another device. Prefix it so it's easier
to spot and search for.

See https://bugzilla.redhat.com/show_bug.cgi?id=1364850#c3 for an example of
how such an event can hide.

We only use last_device for comparing pointer values so we don't need a
reference to the device, it doesn't matter if the device itself goes out of
scope.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-08 15:56:15 +10:00
Peter Hutterer
1497606912 configure.ac: libinput 1.5rc1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-07 13:48:45 +10:00
Peter Hutterer
18adfed4c1 Force the HP Stream 11 touchpad as a clickpad
INPUT_PROP_BUTTONPAD is not set on this device and RMI4 which should fix this
is a bit too far into the future at this point. Hack around it.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-09-07 13:25:31 +10:00
Peter Hutterer
b519ea4ab5 tablet: add touch arbitration
So far we've relied on the wacom kernel module to do touch arbitration for us
but that won't be the case in upcoming kernels. Implement touch arbitration in
userspace by pairing the two devices and suspending the touch device whenever
a tool comes into proximity.

In the future more sophisticated arbitration can be done (e.g. only touches
which are close to the pen) but let's burn that bridge when we have to cross
it.

Note that touch arbitration is "device suspend light", i.e. we leave the
device enabled and the fd is active. Tablet interactions are comparatively
short-lived, so closing the fd and asking logind for a new one every time the
pen changes proximity is suboptimal. Instead, we just keep a boolean around
and discard all events while it is set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
1ce99fd698 evdev: split resetting to a neutral state out
No functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
31fdb7e6b0 test: add litest_assert_touch_sequence helper
Touch sequences are interrupted by TOUCH_FRAME events which makes them
annoying to handle event-by-event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
f73527b8de test: move the Intuos 5 and Cintiq 13HD test tablets into the same device group
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
61e8542d6e evdev: release current touches when the device is suspended
Previously suspending a touch device with at least one touch down would never
release the touch point.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
b22dcab463 evdev: don't send frame events if we filtered the touch event
If the touch is inactive the seat_slot is -1 and we filter the event. The same
happens for devices that send may touch events but aren't touch devices like
any touch-capable mouse. In those cases we sent a bunch of 'empty' touch frame
events. Stop this by checking if we actually flushed the respective event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
b0ec4bacbd evdev: let the fallback_flush... function decide whether a frame is needed
Rather than testing before if we have an event that matches the need for a
frame simply return the event sent by the flush function. If that event
matches those that need frame events, send the event then.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
b26d8f9122 evdev: split out mt event flushing
No functional changes, this is prep work for being able to release touch
points on the fly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07 11:17:03 +10:00
Peter Hutterer
df781aad2f test: add trackpoint palm detection tests
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-07 09:20:15 +10:00
Peter Hutterer
350112a17e doc: extend build instructions for dependencies
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-06 15:34:46 +10:00
Peter Hutterer
8fad73b67a test: add test for touchpad disabling on external mouse
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-05 10:48:59 +10:00
Peter Hutterer
52cd361907 udev: fix comment describing permitted match strings
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-05 08:51:12 +10:00
Peter Hutterer
43a8502ecf udev: add missing touchpad model name for the HP 8510w 2016-09-05 07:38:12 +10:00
Peter Hutterer
d686e13338 tablet: if a serial comes in late, discard it
If a tool starts reporting with serial 0 and later updates to a real serial,
discard that serial and keep reporting as serial 0. We cannot really change
the tool after proximity in as we don't know when callers query for the serial
(well, we could know but any well-written caller will ask for the serial on
the proximity in event, so what's the point).

Thus if we do get a serial in and the matching tool, check if we have a tool
with the serial 0 already. If so, re-use that. This means we lose correct tool
tracking on such tablets but so far these seem to only be on devices where the
use of multiple tools is unlikely.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-02 09:10:57 +10:00
Peter Hutterer
3ceb6aeb8c test: change the matrix delta test to use a tip-down event
Makes the test suitable for tablets without proximity capabilities.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-02 09:10:56 +10:00
Peter Hutterer
9550cd47b2 test: add a Wacom HID 4800 test device
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-02 09:10:54 +10:00
Peter Hutterer
64c8939911 evdev: add quirk for the HP85810 touchpad
The touchpad's says it can do two- and three-finger detection but it never
sends events for it. Disable them so we treat it as pure single-finger
touchpad.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-09-01 10:55:34 +10:00
Peter Hutterer
8db9d2b927 evdev: fix handling of click wheel on parsing errors
Introduced in b02acd346b, we need to check the angle returned by the parsing
function, not the variable passed in.

Found by Coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-01 09:57:26 +10:00
Peter Hutterer
3ecd389c94 test: add the valgrind test suite output to the distcleanfiles
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-30 17:50:49 +10:00