Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#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 Bruce Dubbs, 3 years ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 3 years ago

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.

comment:3 by Bruce Dubbs, 3 years ago

Resolution: fixed
Status: assignedclosed

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.

comment:4 by ken@…, 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.

in reply to:  4 comment:5 by ken@…, 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.

Note: See TracTickets for help on using tickets.