Find a file
Alexander Mikhaylenko 60d5172e15 gestures: Filter unaccelerated deltas for gestures
Make sure the unaccelerated deltas are comparable to scroll deltas.

edit by whot:
The original intention of the unaccelerated motion data here was to provide
both accelerated and unaccelerated motion for gestures so it was possible to
have 1:1 mapping from gesture motion to screen activity.

Normalizing to 1000dpi this way would've worked for mice but touchpad
acceleration also includes the TP_MAGIC_SLOWDOWN (amongst other tricks) which
slows down motion to around 27% *before* applying the acceleration function.
On a 1000dpi touchpad (~40 units/mm) simply normalizing touchpad motion to
1000dpi results in pointer motion that is way too fast, it's lacking that
slowdown to 27% of original speed.

This results in the accelerated and unaccelerated gesture data being in
effectively two different coordinate systems with the caller having no ability
to relate the two.

Switching to the special constant acceleration applies that slowdown and
matches the data to the part of the acceleration curve where no (additional)
acceleration is applied.

It makes the gesture unaccelerated data comparable to the accelerated data
and to scroll data which uses the same process.

Fixes #582

Signed-off-by: Alexander Mikhaylenko <alexm@gnome.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-03-16 21:29:56 +00:00
.gitlab/issue_templates gitlab issue templates: remove the checkmarks 2020-03-22 22:33:01 +00:00
.gitlab-ci tools: add a tool to print a libinput recording as a table 2021-02-23 13:46:00 +10:00
completion/zsh completion: add missing libinput analyze subtools to the zsh completions 2021-03-10 09:54:07 +10:00
doc doc/user: explain why we are doing motion normalization 2021-03-16 21:29:56 +00:00
include include: update event codes to v5.8 2020-08-13 11:02:33 +10:00
quirks Add Lenovo Legion 5 keyboard to 50-system-lenovo.quirks 2021-03-02 23:07:48 +00:00
src gestures: Filter unaccelerated deltas for gestures 2021-03-16 21:29:56 +00:00
test test: push/pop event frames around three-touch movements 2021-03-16 21:29:56 +00:00
tools tools/debug-gui: draw a sprite for the unaccelerated pointer as well 2021-03-11 10:40:00 +10:00
udev udev: update rules to handle bind/unbind events 2020-11-24 23:47:31 +00:00
.dir-locals.el indentation: add .dir-locals.el for emacs 2018-02-26 18:44:00 +10:00
.gitignore gitignore: ignore gnuplot files 2018-05-10 16:25:40 +10:00
.gitlab-ci.yml gitlab CI: move the no-libwacom test suite into its own stage 2021-02-15 16:28:44 +10:00
.vimdir Add .vimdir for libinput-specific settings 2015-05-25 09:17:29 +10:00
CODING_STYLE.md Expand the CODING_STYLE with an explanation of commit requirements 2019-12-05 10:40:37 +10:00
COPYING COPYING: change a cgit to a gitlab URL 2018-06-06 11:17:54 +10:00
meson.build libinput 1.17.0 2021-02-23 19:02:45 +10:00
meson_options.txt completion: add libinput(1) zsh completions 2019-08-13 15:05:35 -07:00
README.md doc: fix sentence 2019-10-16 14:58:21 +02:00

libinput

libinput is a library that provides a full input stack for display servers and other applications that need to handle input devices provided by the kernel.

libinput provides device detection, event handling and abstraction to minimize the amount of custom input code the user of libinput needs to provide the common set of functionality that users expect. Input event processing includes scaling touch coordinates, generating relative pointer events from touchpads, pointer acceleration, etc.

User documentation

Documentation explaining features available in libinput is available here.

This includes the FAQ and the instructions on reporting bugs.

Source code

The source code of libinput can be found at: https://gitlab.freedesktop.org/libinput/libinput

For a list of current and past releases visit: https://www.freedesktop.org/wiki/Software/libinput/

Build instructions: https://wayland.freedesktop.org/libinput/doc/latest/building.html

Reporting Bugs

Bugs can be filed on freedesktop.org GitLab: https://gitlab.freedesktop.org/libinput/libinput/issues/

Where possible, please provide the libinput record output of the input device and/or the event sequence in question.

See https://wayland.freedesktop.org/libinput/doc/latest/reporting-bugs.html for more info.

Documentation

Examples of how to use libinput are the debugging tools in the libinput repository. Developers are encouraged to look at those tools for a real-world (yet simple) example on how to use libinput.

License

libinput is licensed under the MIT license.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: [...]

See the COPYING file for the full license information.

About

Documentation generated from git commit GIT_VERSION