summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-08-14libinput 1.11.9021.11.902Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-14test: when testing for a touch sequence, assert it's the same slot's sequencePeter Hutterer1-3/+8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13touchpad: drop check for left button areasPeter Hutterer1-2/+2
No functional changes, anything that's in the top/bottom area but not in the respective middle/right area is a left button. Introduced by 13bda5adcb2f81f8ed9de762910ac9ecfa3b250b Fixes coverity complaint about use of uninitialized variable. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13touchpad: change the min vector for the scroll lock to 0.15Peter Hutterer1-1/+1
This makes the difference between noticable delay and unnoticable while having virtually no false positives (for me). https://gitlab.freedesktop.org/libinput/libinput/issues/101 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13touchpad: if a finger in the button area moves by more than 5mm, release itPeter Hutterer4-16/+69
The software button area is currently a partially-dead area. If the finger moves into or out of the area pointer motion works. Finger motion within the area however does not generate motion. The main motivation for this was to avoid accidental pointer motion when a button is pressed. This is required for stationary fingers but once you move a significant distance, those bets are off. So if the finger moves by more than 5mm from where it was put down, release it and let it move the pointer. The full impact is largely limited to horizontal movements within the button area because: - leaving the finger at the bottom area for 300ms without movement triggers the thumb identification, so it won't move anyway. - moving the finger north is likely to go off the button area before we trigger this threshold. https://gitlab.freedesktop.org/libinput/libinput/issues/86 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13touchpad: coding style fixesPeter Hutterer1-2/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13touchpad: rename 'curr' to 'current'Peter Hutterer2-12/+12
We can affort the extra 3 bytes storage. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13quirks: don't allow single quotes for valuesPeter Hutterer2-1/+43
At least not opening single quotes, same as the double quotes we already have. Add the tests for both. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13tests: more tests for quirks handlingPeter Hutterer1-0/+66
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13test: add tests for successful/failing parsing of various quirksPeter Hutterer1-0/+317
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13test: fix quirks test for invalid bus type matchesPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13util: tighten safe_atod parsing to only parse 'normal' numbersPeter Hutterer2-5/+23
We don't have a sensible use case where we want hex to double, or INF to double, or any of that. So check the strings for invalid characters and bail out early. Invalid characters include 'e' and whitespaces too, we don't need those. Small chance of things breaking: if the user-exposed calibration matrix property was specified using hex numbers this will stop working now. I'll take that risk. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13util: switch to a check for isnormal for safe_atodPeter Hutterer1-1/+1
Effectively the same check as before but this should also encompass FP_SUBNORMAL. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13util: fail property parsing if the dimensions are 0Peter Hutterer2-3/+3
There is no use-case for a zero width/height in anything using that property. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13test: replace hand-rolled backtrace function with gstackPeter Hutterer3-168/+39
Let's use something that specializes in that task and does a better job of it than whatever we'll come up with. Due to how it's implemented the stacktrace will always show waitpid() as frame 0 now but we can live with that. gstack prints to stdout but litest_log() uses stderr, so we cannot just call system(), we have do do the pipe/fork/exec/waitpid/read dance. We could use that to filter the #0 frame showing waidpid() from gstack but meh. This drops the libunwind and addr2line dependency and replaces it with gstack instead. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13meson.build: the selftest doesn't need all litest sourcesPeter Hutterer1-2/+1
Drops about 70 ninja targets. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13test: remove the deviceless test runner, make it a commandline arg insteadPeter Hutterer2-30/+29
No need to rebuild everything with an ifdef, we can just use meson to pass an argument to the test itself and filter based on that. This drops about 100 ninja targets. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-13test: switch two ints to boolsPeter Hutterer1-9/+9
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-10doc/user: move touchpad jitter to troubleshootingPeter Hutterer2-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-10Fix doc links to use dashes, not underscoresPeter Hutterer2-4/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-10doc/user: move the jumping cursor page to troubleshootingPeter Hutterer2-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09test: ensure we write something during litest_sendfilePeter Hutterer1-0/+1
This mostly shuts up coverity about potentially using a negative size to write. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09test: remove an obsolete commentPeter Hutterer1-1/+0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09meson.build: drop the now-unused liblitestPeter Hutterer1-9/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09doc: use configure_file()'s @PLAINNAME@ instead of calling installPeter Hutterer3-19/+37
Instead of calling out to install on every ninja call, use @PLAINNAME@ as substitution for just copying the file over. This gets around the "no directory allowed in output file" limitation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09doc/api: drop git-version.doxPeter Hutterer2-9/+2
No longer needed Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09meson.build: process the various tools as a single file listPeter Hutterer1-64/+31
All these tools just copy the input file over, we can do that in a loop Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09meson.build: silence meson warning that we should use configure_file's copyPeter Hutterer1-0/+6
Yes, we should use 'copy'. But that requires 0.47 and that's not an option right now. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-09meson.build: fix typo in version to compare toPeter Hutterer1-1/+1
Introduced in e428e5e87a83127db90476e5a7d7e48546fafd6f Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-08touchpad: 90-degree scroll helperMatt Mayfield2-1/+150
This makes two-finger scrolling in straight lines easier, while still allowing free/diagonal movement. It works in three stages: 1) Initial movement - For the first few millimeters, scroll movements within 30 degrees of horizontal or vertical are straightened to 90-degree angles. - Scroll movements close to 45 degree diagonals are unchanged. - If movement continues very close to straight horizontal or vertical, stage 2 begins and the axis lock engages. - If movement continues along a diagonal, stage 2 is skipped and free scrolling is immediately enabled. 2) Axis lock - If the user scrolls fairly closely to straight vertical, no horizontal movement will happen at all, and vice versa. - It is possible to switch between straight vertical and straight horizontal, and the axis lock will automatically change. - If deliberate diagonal movement is detected at any point, stage 3 begins and the axis lock disengages. 3) Free scrolling - Scrolling is unconstrained until the fingers are lifted.
2018-08-08test: touchpad: add tests for 90 degree scroll (axis lock)Matt Mayfield1-0/+146
2018-08-08doc/user: add 90-degree scroll behaviorMatt Mayfield1-0/+4
2018-08-08tools: debug-*: show unaccelerated deltas for pointer eventsPeter Hutterer2-1/+39
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-07test: add a 10ms delay for scrolling testsPeter Hutterer1-1/+1
No touchpad gives us these events with a 0 delay, so let's not test for that. This is required for adding timing-sensitive scroll code, see https://gitlab.freedesktop.org/libinput/libinput/issues/101. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-07test: touchpad: swap an int for a boolPeter Hutterer1-11/+11
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-07test: rename the x220 clickpad to something more tellingPeter Hutterer2-2/+2
Having this as the generic "synaptics" touchpad in the tests is not helpful, this touchpad is tiny and quite special these days. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-07tablet: unify the license text with what we have in COPYINGPeter Hutterer7-112/+119
Use the same blurb everywhere, changing from the old style MIT to the Expat license we're using everywhere else. Similar to bc9f16b40e23a1d25c105a4207b97d65253f0d98 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06filter: always init a delta smoothener for 10/10ms on trackpointsPeter Hutterer1-0/+6
If the trackpoint gives us deltas with less than 10ms intervals, something is wrong. Could be bad hardware, a glitch in the matrix or a discontinuity in the otherwise appropriately named time-space continuum. Usually it's the first. Let's always set up trackpoint delta smoothening for 10ms to improve the pointer speed calculation and avoid jerky behaviors. i.e. if a trackpoint delta comes in below 10ms, pretend it came in with a 10ms interval for calculating the speed. Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/104 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06doc/user: drop the sphinx -a flagPeter Hutterer1-2/+1
Let's trust sphinx to know what to rebuild Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06tools: record: don't bother setting last_ms to 0 on the first eventPeter Hutterer1-2/+0
The first event we receive is set to a 0ms offset anyway. Setting last_ms to 0 on the first event means the first two events have +0ms offset printed to the log. Skip it, so the second event has the right offset. This is human-readable data only, no effect on the recording file itself. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06doc/user: add touchpad pressure debugging as separate pagePeter Hutterer4-186/+211
This way we can put it under Troubleshooting Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06doc/user: add the quirks tool to the tool listPeter Hutterer1-0/+16
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-06doc/user: match the quirks list output with the codePeter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-05Remove seemingly extra pasted line from licenseMatt Mayfield1-1/+0
2018-08-03touchpad: improve finger counting for synaptics serial touchpadsPeter Hutterer3-1/+202
A three-finger touch may cause slot N to end, in a frame after the BTN_TOOL_TRIPLETAP. This causes tp->nfinger_down to be decremented to 2 as the touch switches to MAYBE_END - which happens to be our num_slots. We exit early and never restore the touch correctly. Fix this by checking that the number of fake touches is equal to the slots, if it is higher then we need to check for recovery. Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/99 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-03fallback: add support for ABS_MT_TOOL_TYPE for touch screensPeter Hutterer8-15/+456
Cancel any touches that trigger MT_TOOL_PALM. Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/25 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-03test: handle ABS_MT_TOOL_TYPE from the litest devicesPeter Hutterer1-1/+14
We want to autoreplace this value where possible but not scale it to min/max, this is effectively an enum. The same is true for slot/tracking id, so let's add it here too. Because it's an enum and 99% of the cases require MT_TOOL_FINGER, we always fall back to that instead of using the axis_defaults that we use for other axes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-03test: add test helpers for touch sequence partsPeter Hutterer2-0/+79
The necessary helpers to test for a touch event + one touch frame and the extra case for the TOUCH_CANCEL in is_touch_event Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-03fallback: move flushing MT events to a helper functionPeter Hutterer1-39/+49
No functional changes Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-03fallback: change a list of if conditions to a switch statementPeter Hutterer1-3/+12
This used to do a lot more but now it can be handled as simple switch statement. Bonus: we get to log a bug if we ever get here in NONE state. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>