summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-11-25libinput 1.5.21.5.2Peter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-23touchpad: only use the last two coordinates for delta calculationPeter Hutterer1-15/+5
Taking the last 4 points means factoring in a coordinate that may be more than 40ms in the past - or even more when the finger moves slowly and we don't get events for a while. This makes the pointer more sluggish and slower to catch up with what the finger is actually doing. We already have the motion hysteresis as a separate item to prevent jumps (and thus adds some delay to the movement), the calculation over time doesn't provide enough benefit to justify the sluggish pointer. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-23doc: remove unnecessary linebreak in doxygen filePeter Hutterer1-2/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-22evdev: simplify hysteresis code and document itPeter Hutterer1-3/+35
center + diff is the input coordinate. Simplify the code so it's clear what we're returning. And document the function to explain what it does. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-22test: allow the first event to be a short one during scroll testsPeter Hutterer1-5/+16
The hysteresis cuts the first pointer motion by the hysteresis margin. On some touchpads this causes the tests to fail when the motion history length is reduced (future patch). Allow the first event to be smaller than the expected minimum. This doesn't trigger in current tests because the hysteresis is per-event and by the time we get past the minimum 4 events to move the pointer, we're already flying unaffected by the hysteresis. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-22test: fix edge-scroll no-motion testPeter Hutterer1-2/+2
The test is supposed to make sure no motion event is sent and that scrolling continues once leaving the edge. It does so by moving down the edge, into the touchpad, then down further. The move from the edge into the touchpad had a vertical component to it though and could cause the scroll minimum test to fail. This is currently covered up by the delta calculations though, but fix it anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-22test: start with the first offset when moving touchesPeter Hutterer1-2/+2
This doesn't have an effect in our current tests because the touchpad always needs 4 motion events to get moving. But for the future, it simplifies the case of "i want to move between x1/y1 and x2/y2", because it fills in only the events in between rather than re-using the touch down coordinates and thus not causing a motion on the first event. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-22udev: move TEST_EXTENSIONS out of the conditionalPeter Hutterer1-1/+2
Fixes: udev/Makefile.am:47: warning: 'TEST_EXTENSIONS' cannot have conditional contents Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-22test: fix maybe-uninitialized compiler warningsPeter Hutterer1-5/+5
touchpad-tap.c: In function ‘touchpad_3fg_tap_btntool_inverted’: touchpad-tap.c:1548:2: warning: ‘button’ may be used uninitialized in this function [-Wmaybe-uninitialized] and similar False positive, if button isn't set by now we would've abort()-ed before we even get here. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-22test: mark the various abort functions as noreturnPeter Hutterer1-0/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-21evdev: add a quirk for the HP Zbook Studio G3Peter Hutterer3-0/+11
Announces 4 slots but only sends data for the first two. This causes libinput to miss three-finger actions (we don't look at BTN_TOOL_TRIPLETAP if we have 3 or more slots). https://bugs.freedesktop.org/show_bug.cgi?id=98100 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-16Use AM_DISTCHECK_CONFIGURE_FLAGS, not just DISTCHECK_CONFIGURE_FLAGSPeter Hutterer1-1/+1
The latter is for commandline overrides. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2016-11-14Disable test runs on 'distcheck'Peter Hutterer3-0/+12
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-14configure.ac: move the udev test path up into the test sectionPeter Hutterer1-6/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14configure.ac: add some comment markers to see the configure.ac sections easierPeter Hutterer1-0/+15
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-11-14configure.ac: move all AM_CONDITIONALs into one placePeter Hutterer1-3/+3
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-11configure.ac: libinput 1.5.11.5.1Peter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-10evdev: fix typo / bugzilla urlHermann Gausterer1-1/+1
Signed-off-by: Hermann Gausterer <git-libinput-2016@mrq1.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-04evdev: implement support for the MOUSE_WHEEL_CLICK_COUNT propertyPeter Hutterer10-17/+229
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-03doc: expand trackpoint pointer acceleration documentation a bitPeter Hutterer1-3/+22
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-02evdev: add hwdb quirk for HP Compaq 6910Peter Hutterer3-3/+11
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-02evdev: actually ignore joysticksPeter Hutterer2-1/+35
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-02udev: add the hwdb_parser.py test from systemdPeter Hutterer3-0/+189
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-10-28Move touch_notify_frame declaration to the other touch functionsPeter Hutterer1-4/+4
No functional changes Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28Add missing event type checks to libinput_event_gesture_get_base_eventPeter Hutterer1-0/+10
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-28touchpad: check for trackpoint/keyboard at the top of the helpersPeter Hutterer1-3/+7
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-28touchpad: split the touchpad->keyboard/trackpoint pairing helpers outPeter Hutterer1-8/+16
No functional changes Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-25test: add missing comma to horizontal click angle udev rulePeter Hutterer1-1/+1
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-25evdev: add missing space in error messagePeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-25doc: add a small page about contributing to libinputPeter Hutterer3-0/+23
To be expanded at some future time... Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-10-25test: fix clang warning about abs(float)Peter Hutterer1-2/+2
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-25touchpad: switch from fabs() to abs()Peter Hutterer1-2/+2
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-25Mark some internal log functions as printf-style functionPeter Hutterer5-0/+7
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-19doc: reshuffle the "reporting bugs" pagePeter Hutterer1-12/+101
Split it into several device-specific sections Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-16tools: change pointer to voidEric Engestrom1-1/+1
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-14doc: specify the https path for mathjaxPeter Hutterer1-0/+1
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-14configure.ac: libinput 1.5.01.5.0Peter Hutterer1-3/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-14udev: fix hwdb match for the HP Stream 11Peter Hutterer1-1/+1
prefix must be libinput, not evdev Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-12touchpad: require at least 3 events before enabling trackpoint palm detectionPeter Hutterer3-1/+35
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 0210f1fee193) 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-09test: rename SYNAPTICS_CLICKPAD to SYNAPTICS_CLICKPAD_X220Peter Hutterer6-19/+19
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-08tools: prefix debug output with '-' on device changesPeter Hutterer1-1/+11
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-07configure.ac: libinput 1.5rc11.4.901Peter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-09-07Force the HP Stream 11 touchpad as a clickpadPeter Hutterer3-0/+12
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-07tablet: add touch arbitrationPeter Hutterer9-3/+492
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-07evdev: split resetting to a neutral state outPeter Hutterer1-3/+11
No functional changes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07test: add litest_assert_touch_sequence helperPeter Hutterer2-0/+36
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-07test: move the Intuos 5 and Cintiq 13HD test tablets into the same device groupPeter Hutterer6-1/+43
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-09-07evdev: release current touches when the device is suspendedPeter Hutterer2-6/+116
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-07evdev: don't send frame events if we filtered the touch eventPeter Hutterer1-27/+57
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-07evdev: let the fallback_flush... function decide whether a frame is neededPeter Hutterer1-32/+25
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>