#15545 closed enhancement (fixed)
libinput-1.19.0 (Xorg driver)
Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
---|---|---|---|
Priority: | normal | Milestone: | 11.1 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description
New minor version.
Change History (5)
comment:1 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 3 years ago
comment:3 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed at commit 76786133a5d5d32cfdd812f2dcd11e27fdece354
Xorg package updates. Update to libinput-1.19.0 (Xorg driver). Update to libXi-1.8 (Xorg Library). Update to xorgproto-2021.5.
follow-up: 5 comment:4 by , 3 years ago
The high-resolution scrolling is for smooth scrolling, an example of it can be seen in an 8-second twitter video at phoronix: https://www.phoronix.com/scan.php?page=news_item&px=High-Res-Scrolling-Sep-2021 - note the first three seconds are using the old events, to provide a comparison.
By following the links at phoronix I got to the issues needed to make this usable:
[ https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/652#note_1046230 ] (see 'Status')
in particular (all except qtbase are still open):
for xwayland https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/118
for mutter https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1962
for gtk https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3839 - that is for gtk4, it might get backported to gtk3 after gtk4 is updated if the maintainers are interested
for qtbase https://codereview.qt-project.org/c/qt/qtbase/+/360677
- that is linked from the libinput issues with a comment from Alan Sandfeld Jensen so it is effectively public and can be used (assuming it applies to qt-5.15.2) : I guess that should allow smooth scrolling on all qt5 apps when built with the new versions of libinput, xorg-proto, libXi.
comment:5 by , 3 years ago
Replying to ken@…:
for qtbase https://codereview.qt-project.org/c/qt/qtbase/+/360677
- that is linked from the libinput issues with a comment from Alan Sandfeld Jensen so it is effectively public and can be used (assuming it applies to qt-5.15.2) : I guess that should allow smooth scrolling on all qt5 apps when built with the new versions of libinput, xorg-proto, libXi.
Now that I've built a system with current libinput and the rest, I took a look at the Qt part: the testing for the new items is handled in qtbase/src/gui/configure.cmake : in 5.15.2 that file does not exist, it uses configure.pri and configure.json so this cannot be done in qt-5.15.2.
libinput 1.19.0 is now available. Only three device-specific quirks since the RC so let's call this release done, push it out and the world becomes a slightly better, or at least different, place.
Since there's nothing too noteworthy, here's the text from the RC explaining the new features.
This release brings two new features and the corresponding API additions: hold gestures and high-resolution wheel scrolling (which changes the scroll APIs).
Hold gestures are a new type of gestures that are triggered by holding one or more fingers on a touchpad without significant movement. They add to the existing pinch and swipe gestures and allow for the implementation of hold-to-click. Where callers implement kinetic scrolling, hold gestures can be used to stop scrolling - since the gesture is triggered on a finger(s) down after a scroll motion, that event can be used to stop scrolling. Many thanks to José Expósito for the new gestures.
High-resolution wheel scrolling has been long in the making and the solution ends up replacing the existing pointer axis API. Three new events are available: LIBINPUT_EVENT_POINTER_SCROLL_WHEEL, LIBINPUT_EVENT_POINTER_SCROLL_FINGER, and LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS. These events replace the existing LIBINPUT_EVENT_POINTER_AXIS events, i.e. if you are processing the new events simply discard the old events.
The FINGER and CONTINUOUS events are very similar to the previous event, the WHEEL event supporst a new API: libinput_event_pointer_get_scroll_value_v120(). That function returns the value of a scroll movement in multiples or fractions of 120. For example, a high-resolution scroll event that triggers 4 events instead of just 1 per 15 degree rotation will generate 4 events with a value of 30 each.