| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
| |
clickpad that announces BTN_RIGHT
Signed-off-by: A-w-x <awxkrnl@gmail.com>
|
|
|
|
|
|
|
| |
Don't use the litest wrapper context here, it changes log priority if
the test suite is run with --verbose, causing the test to fail.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
| |
Both "svnPurism:pnLibrem14:" and "svnPurism:pnlibrem_14:" are possible
Signed-off-by: Travis Wrightsman <travis@wrightsman.org>
|
|
|
|
| |
Signed-off-by: Eduardo Cruz <eduardo.cruz@kdemail.net>
|
|
|
|
| |
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
|
|
|
|
| |
Signed-off-by: Eduardo Cruz <eduardo.cruz@kdemail.net>
|
|
|
|
|
|
|
|
|
|
| |
During the transition from GESTURE_STATE_HOLD_AND_MOTION to
GESTURE_STATE_POINTER_MOTION the last pointer motion event was
processed twice.
Fix #680
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
| |
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
|
|
|
|
| |
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some devices might announce support for high-resolution scroll wheel
by enabling REL_WHEEL_HI_RES and/or REL_HWHEEL_HI_RES but never send
a high-resolution scroll event.
When the first low-resolution scroll event is received without any
previous high-resolution event, print a kernel bug warning and start
emulating high-resolution scroll events.
Fix #668
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
| |
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Later versions of this same model seem to have a different ALPS touchpad
and don't need the pressure settings. Narrow down this match so we only
apply to the one from the actual bug report in #565.
Fixes #676
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
| |
Fixes #674
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
| |
LIBINPUT_EVENT_GESTURE_HOLD_BEGIN and LIBINPUT_EVENT_GESTURE_HOLD_END
were missing from libinput_event_gesture_get_base_event.
Add them to avoid triggering an erroneous client bug warning.
Fix #671
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
| |
When required, invert horizontal scrolling in evdev_notify_axis_wheel
following the QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING quirk.
Fix #669
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
External touchpads using USB are vanishingly few, built-in touchpads
that use USB are comparatively common. So let's default to internal,
for vendors like Logitech and Wacom that only make external touchpads we
have special conditions in place anyway.
Fixes #664
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
| |
When pairing a trackpoint, use the model flags for the touchpad, don't
use a separate set of conditions.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GTK handles LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS as
GDK_SCROLL_SMOOTH, the same event type that is used to handle
LIBINPUT_EVENT_POINTER_SCROLL_FINGER.
Because Mutter and other compositors, like wlroots based compositors,
translate libinput terminating event to axis_stop instead of doing their
own emulation, if libinput stops sending terminating events, it will
cause client bugs.
Since libinput always sends the terminating event for trackpoints and
button scrolling and there are even tests in place to check for them,
update the documentation to guarantee the terminating scroll sequence.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's been a while since we really could do something about those jumps,
so let's assume most of these are informative and not a bug in libinput.
For that let's not spam the user's journal and ratelimit it to a handful
a day.
Per day because that increases the chance of an error being present in
the recent logs if the user does search for it.
Related #663
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a touchpad is removed before its dwt-paired keyboard, we're leaking
the keyboard struct. Fix this by cleaning up properly when our device is
removed.
This is the cause of many failed tests in the udev backend tests during
the CI valgrind run. Because we're testing the udev backend it will add
any devices created by tests run in parallel, some of which are keyboard
devices. Depening on the test completions, the keyboards may or may not
get removed before this device.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
| |
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the kernel doesn't support a touchpad, the device is handled as a
generic mouse named "ImPS/2 Generic Wheel Mouse".
Taps are handled as button clicks and the button debouncing code makes
it difficult to double click.
Add a quirk to disable button debouncing for this devices.
Fix https://gitlab.freedesktop.org/libinput/libinput/-/issues/656
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Move the logic used to parse boolean quirks and udev flags to a common
function in utils.
Refactor, no functional changes.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
| |
Signed-off-by: weizhixiang <weizhixiang@uniontech.com>
|
|
|
|
|
|
|
|
| |
Mark the Microsoft Surface Pro 3 Cover keyboard as internal.
Fix https://gitlab.freedesktop.org/libinput/libinput/-/issues/655
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
| |
Add missing literal blocks in the section "Failed pipeline errors"
introduced in 140b4b78530b62f8dc70645153b75b4adae23ed9.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
| |
The keyboard is 'internal' (built-in), and attached over usb.
Signed-off-by: Clayton Craft <clayton@craftyguy.net>
|
|
|
|
| |
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting with kernel v5.0 two new axes are available for high-resolution wheel
scrolling: REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES. Both axes send data in
fractions of 120 where each multiple of 120 amounts to one logical scroll
event. Fractions of 120 indicate a wheel movement less than one detent.
This commit adds a new API for scroll events. Three new event types that encode
the axis source in the event type name and a new API to get a normalized-to-120
value that also used by Windows and the kernel (each multiple of 120 represents
a logical scroll click).
This addresses a main shortcoming with the existing API - it was unreliable to
calculate the click angle based on the axis value+discrete events and thus any
caller using the axis value alone would be left with some ambiguity. With the
v120 API it's now possible to (usually) calculate the click angle, but more
importantly it provides the simplest hw-independent way of scrolling by a
click or a fraction of a click.
A new event type is required, the only way to integrate the v120 value
otherwise was to start sending events with a discrete value of 0. This
would break existing xf86-input-libinput (divide by zero, fixed in 0.28.2) and
weston (general confusion). mutter, kwin are unaffected.
With the new API, the old POINTER_AXIS event are deprecated - callers should use
the new API where available and discard any POINTER_AXIS events.
Notable: REL_WHEEL/REL_HWHEEL are emulated by the kernel but there's no
guarantee that they'll come every accumulated 120 values, e.g. Logitech mice
often send events that don't add up to 120 per detent.
We use the kernel's wheel click emulation instead of doing our own.
libinput guarantees high-resolution events even on pre-5.0 kernels.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Extract the logic in litest_assert_event_type to a generic function,
litest_assert_event_type_is_one_of, that takes a variable number of
expected event types.
Refactor, no functional changes.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set multiplier for T470 to 0.4, same as for T480.
Trackpoint behavior on T470 was good before 1.9.0 (more precisely,
before the commit 87b568) when a new trackpoint acceleration algorithm
was introduced instead of the traditional linear filter. Since then
it is too sensitive and seems impossible to fine-tune using hw settings
or libinput accel speed setting.
With multiplier set to 0.4 it is as good (or better) as in 1.8.4.
Sensitivity feels the same as in 1.8.4 with the same hw settings for
speed and sensitivity.
Signed-off-by: Dmitry Maluka <dmitrymaluka@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The device sends its own scroll events when its trackpoint is moved
while the middle button is pressed.
Because scroll events are inhibited while the middle button is pressed
a quirk is necessary for this device to not inhibit scroll events.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
| |
This way we can ensure that at least one device is available, and that
it is the device we want.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
| |
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
meson uses MESON_TESTTHREADS to determine the number of parallel test
jobs. Since our main test suite cannot be run in parallel anyway, use
that same variable in litest to determine how many jobs we should fork
off.
In the CI pipeline, we can use FDO_CI_CONCURRENT to pass that down so we
don't end up running a billion jobs on a test runner.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
|
|
|
| |
Starting with meson v0.49.0, the "/" operator can be used instead of
join_paths.
Update meson to v0.49.0 and remove all calls to join_paths.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Update GTK to version 4 on Fedora, Arch and Alpine Linux.
Not updating Debian and FreeBSD because the package is not available yet
and Ubuntu because it is not available on 20.10.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
| |
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
| |
Use the pointer constraints protocol to lock the pointer on Wayland.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Global:
- Stop passing commandline arguments to gtk_init:
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-passing-commandline-arguments-to-gtk_init
window_init function:
- gtk_window_new doesn't require a type anymore
- gtk_window_iconify has been renamed to gtk_window_minimize
- gtk_container_add has been removed in favor of container specific
APIs. Use gtk_window_set_child in this case.
- gtk_widget_show_all has been removed, widgets are now visible by
default:
https://docs.gtk.org/gtk4/migrating-3to4.html#widgets-are-now-visible-by-default
- gtk_widget_set_events to NULL is no longer required, widgets must set
their event handlers explicitly now:
https://blog.gtk.org/2020/04/29/custom-widgets-in-gtk-4-input/
window_delete_event_cb function:
- Use the new close-request event:
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkwidget-event-signals
map_event_cb function:
- gtk_widget_set_cursor_from_name instead of gdk_window_set_cursor
- Wait until the draw area is resized to use the whole window to start
calculating sizes
window_place_ui_elements function:
- Use gtk_widget_get_width and gtk_widget_get_height instead of
gtk_window_get_size
Drawing:
- Use gtk_drawing_area_set_draw_func instead of the GtkWidget::draw
signal:
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-drawing-model-changes
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Move the code used to pace the different UI elements to its own
function.
Refactor, no functional changes.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
| |
Migrate to GMainLoop because gtk_main is deprecated in GTK 4.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
| |
Wrap the calls to gtk_main_quit in its own function.
Refactor, no functional changes.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This does little other than drag in a whole bunch of dependencies. The
libinput documentation is designed to be consumed online, so there's no
need building it on every machine.
We leave the dependencies installed in the images because it's a lot
easier to remove them and test if the build still works than adding them
and dragging in every updated package since we built the image.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
| |
Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
|
|
|
|
| |
Signed-off-by: Quytelda Kahja <quytelda@tamalin.org>
|
|
|
|
|
|
|
| |
Add a section in the contributing documentation with common pipeline
errors and how to fix them and point to this page when the CI fails.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
|
|
|
|
|
|
| |
None of our jobs rely on the artifacts of a previous job, so let's not
pass those around. Make this part of the default policy and include it
from every job.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
| |
Fixes #632.
Signed-off-by: Quytelda Kahja <quytelda@tamalin.org>
|