summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-08-05libinput 1.4.11.4.1Peter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-05doc: add some info about configuring devices in wayland/xorgPeter Hutterer1-0/+46
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit ae30353a739cf059a987cdc5b41173212bd66500)
2016-08-05touchpad: use the udev ID_INPUT_TOUCHPAD_INTEGRATION property if availablePeter Hutterer1-0/+18
udev now labels touchpads as "internal" or "external" for us, use that value where available and only fall back onto our own labelling if it's missing or unknown. systemd commit: https://github.com/systemd/systemd/pull/3638 https://bugs.freedesktop.org/show_bug.cgi?id=96735 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 64e39411892fa4897f6e018daaa2de2ffaf8b671)
2016-08-05doc: add links to the two debugging tools as examplesPeter Hutterer1-0/+17
These are the simplest examples on how to use libinput and should be enough to get any potential user started. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 14d0cd9d38520295fb9244869edfa4648dd9424b)
2016-08-05udev: don't overwrite a previously set device groupPeter Hutterer1-0/+1
In some cases a device may need a device group assigned by a custom udev rule or hwdb entry. Don't overwrite that with our generated one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 188bad48668661378827818a8706aa621a1182dd)
2016-08-05evdev: prefix "tablet unknown to libwacom" error with the device namePeter Hutterer1-1/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 45a574a7859cb83e589c6f2d33d81a3f666ba60d)
2016-07-18configure.ac: libinput 1.4.01.4.0Peter Hutterer1-3/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-18test: make one ALPS and the Synaptics i2c test devices Dell touchpadsPeter Hutterer2-0/+22
The i2c one came from an Dell XPS13. The ALPS one I can't remember but highly likely they were on Dells and if not, nothing really changes here anyway because it's not a clickpad and right now only clickpads have dell-specific behaviour. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-18touchpad: change offset ints to device_coordsPeter Hutterer1-15/+15
No functional changes, just makes the unit more explicit Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-18evdev: constify evdev_device_get_sizePeter Hutterer2-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-15touchpad: don't init a horizontal scroll area on touchpads <50mm highPeter Hutterer2-2/+94
We simply don't have enough space on those touchpads to have an area carved out for horizontal scrolling. Given that horizontal scrolling is rarely needed anyway users of these touchpads will just have to cling to scroll bars or use two-finger scrolling. Exception are small clickpads because they already have an area blocked off for software buttons and those small clickpads generally come from a time when clickfinger wasn't much of a thing yet. https://bugs.freedesktop.org/show_bug.cgi?id=96910 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-15test: split edge scroll tests into one for vert, one for horizPeter Hutterer1-2/+13
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-14touchpad: reduce middle button size on Dell touchpads to 10mmPeter Hutterer4-3/+30
All Dell touchpas appear to have a visual marker on their touchpads. With a visible marker our middle button can (and should) be much smaller since we can rely on users to hit the button precisely. https://bugs.freedesktop.org/show_bug.cgi?id=96710 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-13touchpad: drop unused argument diagonal from tp_init_accelPeter Hutterer1-4/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-13tablet: catch potential segfault if the filter fails to allocatePeter Hutterer1-0/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-13Fix some indentation issuesPeter Hutterer1-5/+5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-12test: add a Cintiq 13 HDT test devicePeter Hutterer6-0/+382
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-12configure.ac: libinput 1.4rc11.3.901Peter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-11Remove LIBINPUT_EVENT_TABLET_PAD_MODE eventPeter Hutterer5-41/+0
Unimplemented and it wasn't supposed to be in the series. https://lists.freedesktop.org/archives/wayland-devel/2016-June/029376.html Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-07-11Fix and improve mode group documentationPeter Hutterer1-18/+29
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-06test: write the valgrind test results to a different output filePeter Hutterer1-1/+1
Otherwise we overwriting the output from the normal test run. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-05test: up the timeout to 30sPeter Hutterer1-1/+1
10s is not enough when running the test suite in parallel as any test may have to wait longer than that to get access to the udev lock. Especially for tests with multiple timeouts it was too easy to trigger timeouts. Up the timeout to 30s, this seems reliable enough now. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2016-07-05test: create a lock file to avoid parallel udev reloads during device addPeter Hutterer2-0/+66
litest_add_device and litest_delete_device trigger a udev rule reload. This messes with some test devices and when we run multiple tests in parallel we get weird errors like "keyboard $BLAH failed the touchpad sanity test". Still not 100% reliable to run tests in parallel, but it's vastly improved now. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2016-07-05test: fix a memleak when creating udev devicesPeter Hutterer1-2/+6
If the first device we got didn't have the expected syspath we'd leak the device and cause the valgrind tests to fail. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-04Merge branch 'wip/tablet-pad-modes-v3'Peter Hutterer22-163/+2367
2016-07-04touchpad: remove software middle button when emulation is enabledPeter Hutterer10-13/+382
Expose the middle button emulation on software buttons as proper config option. When enabled, remove the middle button software button area. https://bugs.freedesktop.org/show_bug.cgi?id=96663 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-04evdev: return the desired middle button emulation statePeter Hutterer1-1/+1
Middle button emulation may be delayed in turning on, but during that delay we already need to return the desired state. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-04touchpad: unify internal/external touchpad taggingPeter Hutterer3-20/+55
To unify this we need to move the tagging process forward so tp_init() can rely on it for config setup. This means moving it to the touchpad init code. Other than that no real functional changes, the rules stay the same: * serial/i2c/etc. are considered internal touchpads * Bluetooth is always external * USB is external for Logitech devices * USB is external for Wacom devices * USB is internal for Apple touchpads And if we can't figure it out, we assume it's external and log a message so we can put a quirk in place. https://bugs.freedesktop.org/show_bug.cgi?id=96735 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-04gestures: make the gesture movement threshold depending on finger countPeter Hutterer2-8/+11
Increase the mm move threshold for 3 and 4 finger gestures to 2 and 3 mm, respectively. In multi-finger gestures it's common to have minor movement while all fingers are being put down or before the conscious movement starts. This can trigger invalid gesture detection (e.g. a pinch instead of a swipe). Increase the movement threshold to make sure we have sufficient input data. No changes to 2-finger movements. https://bugs.freedesktop.org/show_bug.cgi?id=96687 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-30gitignore: add pattern for gcov detritusPeter Hutterer1-0/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-30doc: add a section to the FAQ on how to retrigger hwdb changesPeter Hutterer1-0/+31
I'm typing this way too often into bugreports Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-29touchpad: only check for vertical finger distribution on 2fg gesturesPeter Hutterer1-12/+13
A natural hand position for a 4-finger swipe will have one finger well below the other triggering the pinch detection. This is obviously wrong, only do the finger position analysis when we have 2 fingers. This is only a partial fix, for 3-4 finger gestures chances are high that the third/fourth finger come in a different event frame. Before that we likely detect 2 fingers in a possible pinch position and still trigger the code path. This issue has to be fixed separately. https://bugs.freedesktop.org/show_bug.cgi?id=96687 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-28tablet: make the cursor/lens tool behave like a 1000dpi mousePeter Hutterer3-21/+80
The current code tried to emulate the relative motion to be equivalent to the absolute motion, except in screen coordinates. This is way too slow for the cursor tool that we want to behave like a mouse. Tablets have high resolution (e.g. an Intuos 4 is a 5080dpi mouse) and that motion is way too fast to be usable. Scale it down to match a 1000dpi device instead. Since the cursor and lens tool are still high precision devices leave them in a flat acceleration profile without actual acceleration. For the stylus-like devices leave the current accel, pointer acceleration on a stylus is hard to handle. This also adds the missing bits for actually using the speed factor set through the config interface. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-27tools: reduce tilt scale to 1/30 of the input valuePeter Hutterer1-1/+1
The x/y tilt angle comes in as degrees, so our scale could be as large as 90x the original size. Scale to something more sensible. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-24test: add pad mode group testsPeter Hutterer5-0/+384
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-24test: add an Wacom EKR test devicePeter Hutterer4-0/+136
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-24pad: implement basic mode group support (1 group with 1 mode)Peter Hutterer8-22/+357
Until the kernel patches to handle LED group switching are in place we provide the external API backed by an implementation that simply exposes one group with one mode and no toggle buttons. This allows us to ship a libinput release with the API in place and switch libinput later without having all the stack above us being delayed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22pad: Add a new API for modes and mode groupsPeter Hutterer8-12/+550
Move mode control to libinput. This reduces some flexibility on what we can do with modes but makes it a lot easier for anyone to implement modes correctly and have the LEDs apply appropriately, etc. Let's go with the option to make the 95% use-case easy. Note: whether the mode is actually used is up to the caller, e.g. under Windows and OS X the mode only applies to the rings/strips, not the buttons. A tablet pad has 1 or more mode groups, all buttons/ring/strips are assigned to a mode group. That group has a numeric mode index and is hooked to the LEDs. libinput will switch the LEDs accordingly. The mode group is a separate object. This allows for better APIs when it comes to: * checking whether a button/ring/strip is part of a mode group * checking whether a button will trigger a mode transition and in the future potentially: * checking which mode transition will happen * setting which button should change the mode transition * changing what type of mode transition should happen. * moving a button from one mode group to the other This patch adds the basic scaffolding, without any real implementation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Proofread-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22doc: add two svgs showing the modesPeter Hutterer3-0/+783
Separate patch to avoid crowding out the actual content in the patch with the documentation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22doc: move the struct declarations to the topPeter Hutterer1-126/+126
They don't define anything, move them to the top so we don't have ordering requirements of the stuff that actually uses those as parameters. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22doc: split the tablet pad events into their own doxygen module pagePeter Hutterer1-15/+23
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22util: add safe_atoi helper functionPeter Hutterer1-0/+20
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-20Merge branch 'wip/touchpad-drop-hysteresis'Peter Hutterer9-118/+10
2016-06-20touchpad: re-enable hysteresis by default for all devicesPeter Hutterer5-11/+0
The removal of the hysteresis even on precise touchpads has led to difficulties controlling the cursor in a few instances. Since 27078b2667d we only have the hysteresis on Apple touchpads and the Lenovo *40 series and later. Even on those do we see some positioning difficulties (bug 94379). So restore the hysteresis by default again for all touchpads. In the future a knob could be exposed for precision vs reactivity or something, but for now the drawback of imprecise positioning does not outweigh the benefits we get on those few devices. https://bugs.freedesktop.org/show_bug.cgi?id=94379 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20Revert "touchpad: reset the motion history on significant negative pressure ↵Peter Hutterer5-38/+10
changes" We will reinstate the hysteresis for all devices making the negative pressure check unncessary. This reverts commit ef48c07a9600733e068a2a437a145862ba07fdab. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20Revert "touchpad: only use negative pressure change check on Lenovo *50 and ↵Peter Hutterer1-3/+1
*60 series" We will reinstate the hysteresis for all devices making the negative pressure check unncessary and thus this commit as well. This reverts commit 2f5231cc88fccf389a78270d827f6c9201b86794. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20Revert "test: add a test for the T450 dropped motion events"Peter Hutterer1-67/+0
This reverts commit b5527fa4c73da687774971ddd7cf6ad2016f89e7. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20test: add an apple magicmouse devicePeter Hutterer8-0/+135
This device has a touchpad on the mouse but it's labeled as mouse. For litest we only label it as LITEST_MOUSE feature and test the touchpad directly on the device. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20test: when creating an abs test device, force the abs->value to the mimimumPeter Hutterer1-2/+6
Otherwise the abs->value could lie outside the [min, max] range of the axis. This isn't much of an issue for actual axes but in the case of ABS_MT_SLOT (value 47) it causes errors when libevdev sanitises the event into the allowed slot range. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-16test: make the valgrind target depend on 'all'Peter Hutterer1-1/+1
Make sure we rebuild before running valgrind, everything else is a waste of time. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>