xf86-input-libinput 1.2.0
This commit is contained in:
parent
b6d27861d8
commit
8cfccefa8a
@ -1,56 +0,0 @@
|
|||||||
From bf8dc2e2ed0780b947eccfc9ac3694c518dee605 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Date: Wed, 23 Jan 2019 09:01:24 +1000
|
|
||||||
Subject: [PATCH xf86-input-libinput 1/3] Upgrade the default scroll distance
|
|
||||||
to 120
|
|
||||||
|
|
||||||
This is just a number, to be used as divider and shouldn't have any effect in
|
|
||||||
correctly written clients. With the high-res scrolling coming up however, we
|
|
||||||
have a few devices where the dist cannot be expressed as an integer fraction
|
|
||||||
of 15, so let's up it to 120 because we know all hardware wheels have to be an
|
|
||||||
integer fraction of that that, thanks to Microsoft's API requirements.
|
|
||||||
|
|
||||||
For non-wheel scrolls we need to now map into the new range. Previously we
|
|
||||||
just passed the scroll events on from the touchpad/button scrolling, meaning a
|
|
||||||
vdist of 15 meant 15 "libinput pixels" of scrolling resulted in a logical
|
|
||||||
wheel click. Now that we have 120 as vdist, we need to times the input data by
|
|
||||||
8 to keep the same proportions.
|
|
||||||
|
|
||||||
See 39b0bb4585106a56a51236d8e9843b2da8d745a5 for the previous revert.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
src/xf86libinput.c | 9 ++++++---
|
|
||||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
|
|
||||||
index 33b02da..adbc724 100644
|
|
||||||
--- a/src/xf86libinput.c
|
|
||||||
+++ b/src/xf86libinput.c
|
|
||||||
@@ -1652,8 +1652,11 @@ calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
* device. The user may change the ScrollPixelDistance
|
|
||||||
* though, so where we have a dist of 10 but an increment of
|
|
||||||
* 15, we need to scale from 0..10 into 0..15.
|
|
||||||
+ *
|
|
||||||
+ * We now switched to vdist of 120, so make this
|
|
||||||
+ * proportionate - 120/15 is 8.
|
|
||||||
*/
|
|
||||||
- value = value/dist * SCROLL_INCREMENT;
|
|
||||||
+ value = value/dist * SCROLL_INCREMENT * 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
*value_out = value;
|
|
||||||
@@ -3585,8 +3588,8 @@ xf86libinput_pre_init(InputDriverPtr drv,
|
|
||||||
* affect touchpad scroll speed. For wheels it doesn't matter as
|
|
||||||
* we're using the discrete value only.
|
|
||||||
*/
|
|
||||||
- driver_data->scroll.v.dist = SCROLL_INCREMENT;
|
|
||||||
- driver_data->scroll.h.dist = SCROLL_INCREMENT;
|
|
||||||
+ driver_data->scroll.v.dist = 120;
|
|
||||||
+ driver_data->scroll.h.dist = 120;
|
|
||||||
|
|
||||||
if (!is_subdevice) {
|
|
||||||
if (libinput_device_has_capability(device, LIBINPUT_DEVICE_CAP_POINTER))
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
|||||||
From ca9042c7f08f8f0dc214b9cc19f3243728ec8c4a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jose.exposito89@gmail.com>
|
|
||||||
Date: Wed, 4 Aug 2021 17:51:26 +0200
|
|
||||||
Subject: [PATCH xf86-input-libinput 2/3] Get scroll source in the event
|
|
||||||
handler
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Where libinput supports high-resolution scroll events, the scroll source
|
|
||||||
is encoded in the event type.
|
|
||||||
|
|
||||||
Get the scroll source in xf86libinput_handle_event to facilitate the
|
|
||||||
migration.
|
|
||||||
|
|
||||||
Refactor, no functional changes.
|
|
||||||
|
|
||||||
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
|
|
||||||
---
|
|
||||||
src/xf86libinput.c | 13 ++++++++-----
|
|
||||||
1 file changed, 8 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
|
|
||||||
index adbc724..a8b7013 100644
|
|
||||||
--- a/src/xf86libinput.c
|
|
||||||
+++ b/src/xf86libinput.c
|
|
||||||
@@ -1631,15 +1631,14 @@ static inline bool
|
|
||||||
calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
enum libinput_pointer_axis axis,
|
|
||||||
struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis_source source,
|
|
||||||
double *value_out)
|
|
||||||
{
|
|
||||||
- enum libinput_pointer_axis_source source;
|
|
||||||
double value;
|
|
||||||
|
|
||||||
if (!libinput_event_pointer_has_axis(event, axis))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
- source = libinput_event_pointer_get_axis_source(event);
|
|
||||||
if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
|
|
||||||
value = get_wheel_scroll_value(driver_data, event, axis);
|
|
||||||
} else {
|
|
||||||
@@ -1665,7 +1664,9 @@ calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *event)
|
|
||||||
+xf86libinput_handle_axis(InputInfoPtr pInfo,
|
|
||||||
+ struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis_source source)
|
|
||||||
{
|
|
||||||
DeviceIntPtr dev = pInfo->dev;
|
|
||||||
struct xf86libinput *driver_data = pInfo->private;
|
|
||||||
@@ -1678,7 +1679,6 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
|
|
||||||
|
|
||||||
valuator_mask_zero(mask);
|
|
||||||
|
|
||||||
- source = libinput_event_pointer_get_axis_source(event);
|
|
||||||
switch(source) {
|
|
||||||
case LIBINPUT_POINTER_AXIS_SOURCE_FINGER:
|
|
||||||
case LIBINPUT_POINTER_AXIS_SOURCE_WHEEL:
|
|
||||||
@@ -1691,6 +1691,7 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
|
|
||||||
if (calculate_axis_value(driver_data,
|
|
||||||
LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL,
|
|
||||||
event,
|
|
||||||
+ source,
|
|
||||||
&value))
|
|
||||||
valuator_mask_set_double(mask, 3, value);
|
|
||||||
|
|
||||||
@@ -1700,6 +1701,7 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
|
|
||||||
if (calculate_axis_value(driver_data,
|
|
||||||
LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL,
|
|
||||||
event,
|
|
||||||
+ source,
|
|
||||||
&value))
|
|
||||||
valuator_mask_set_double(mask, 2, value);
|
|
||||||
|
|
||||||
@@ -2381,7 +2383,8 @@ xf86libinput_handle_event(struct libinput_event *event)
|
|
||||||
break;
|
|
||||||
case LIBINPUT_EVENT_POINTER_AXIS:
|
|
||||||
xf86libinput_handle_axis(pInfo,
|
|
||||||
- libinput_event_get_pointer_event(event));
|
|
||||||
+ libinput_event_get_pointer_event(event),
|
|
||||||
+ libinput_event_pointer_get_axis_source(event));
|
|
||||||
break;
|
|
||||||
case LIBINPUT_EVENT_TOUCH_FRAME:
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,210 +0,0 @@
|
|||||||
From beb94333e1450006942a7f0ee38bc2a2f5719238 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Date: Wed, 23 Jan 2019 20:07:37 +1000
|
|
||||||
Subject: [PATCH xf86-input-libinput 3/3] Use the new v120 API from libinput if
|
|
||||||
available
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
configure.ac | 12 ++++++
|
|
||||||
src/xf86libinput.c | 105 ++++++++++++++++++++++++++++++++++++++-------
|
|
||||||
2 files changed, 101 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 176d22e..f747a3d 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -62,6 +62,18 @@ AC_LINK_IFELSE(
|
|
||||||
[libinput_have_scroll_button_lock=yes]],
|
|
||||||
[AC_MSG_RESULT([no])
|
|
||||||
[libinput_have_scroll_button_lock=no]])
|
|
||||||
+
|
|
||||||
+AC_MSG_CHECKING([if libinput_event_pointer_get_scroll_value_v120 is available])
|
|
||||||
+AC_LINK_IFELSE(
|
|
||||||
+ [AC_LANG_PROGRAM([[#include <libinput.h>]],
|
|
||||||
+ [[libinput_event_pointer_get_scroll_value_v120(NULL, 0)]])],
|
|
||||||
+ [AC_MSG_RESULT([yes])
|
|
||||||
+ AC_DEFINE(HAVE_LIBINPUT_AXIS_VALUE_V120, [1],
|
|
||||||
+ [libinput_event_pointer_get_scroll_value_v120() is available])
|
|
||||||
+ [libinput_have_axis_value_v120=yes]],
|
|
||||||
+ [AC_MSG_RESULT([no])
|
|
||||||
+ [libinput_have_axis_value_v120=no]])
|
|
||||||
+
|
|
||||||
LIBS=$OLD_LIBS
|
|
||||||
CFLAGS=$OLD_CFLAGS
|
|
||||||
|
|
||||||
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
|
|
||||||
index a8b7013..0cb0c3c 100644
|
|
||||||
--- a/src/xf86libinput.c
|
|
||||||
+++ b/src/xf86libinput.c
|
|
||||||
@@ -1565,9 +1565,9 @@ xf86libinput_handle_key(InputInfoPtr pInfo, struct libinput_event_keyboard *even
|
|
||||||
* so the use-case above shouldn't matter anymore.
|
|
||||||
*/
|
|
||||||
static inline double
|
|
||||||
-get_wheel_scroll_value(struct xf86libinput *driver_data,
|
|
||||||
- struct libinput_event_pointer *event,
|
|
||||||
- enum libinput_pointer_axis axis)
|
|
||||||
+guess_wheel_scroll_value(struct xf86libinput *driver_data,
|
|
||||||
+ struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis axis)
|
|
||||||
{
|
|
||||||
struct scroll_axis *s;
|
|
||||||
double f;
|
|
||||||
@@ -1627,6 +1627,54 @@ out:
|
|
||||||
return s->dist/s->fraction * discrete;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if HAVE_LIBINPUT_AXIS_VALUE_V120
|
|
||||||
+static inline double
|
|
||||||
+get_wheel_120_value(struct xf86libinput *driver_data,
|
|
||||||
+ struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis axis)
|
|
||||||
+{
|
|
||||||
+ struct scroll_axis *s;
|
|
||||||
+ double angle;
|
|
||||||
+
|
|
||||||
+ switch (axis) {
|
|
||||||
+ case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
|
|
||||||
+ s = &driver_data->scroll.h;
|
|
||||||
+ break;
|
|
||||||
+ case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
|
|
||||||
+ s = &driver_data->scroll.v;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ return 0.0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ angle = libinput_event_pointer_get_scroll_value_v120(event, axis);
|
|
||||||
+ return s->dist * angle/120;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+static inline double
|
|
||||||
+get_wheel_scroll_value(struct xf86libinput *driver_data,
|
|
||||||
+ struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis axis)
|
|
||||||
+{
|
|
||||||
+#if HAVE_LIBINPUT_AXIS_VALUE_V120
|
|
||||||
+ return get_wheel_120_value(driver_data, event, axis);
|
|
||||||
+#else
|
|
||||||
+ return guess_wheel_scroll_value(driver_data, event, axis);
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline double
|
|
||||||
+get_finger_or_continuous_scroll_value(struct libinput_event_pointer *event,
|
|
||||||
+ enum libinput_pointer_axis axis)
|
|
||||||
+{
|
|
||||||
+#if HAVE_LIBINPUT_AXIS_VALUE_V120
|
|
||||||
+ return libinput_event_pointer_get_scroll_value(event, axis);
|
|
||||||
+#else
|
|
||||||
+ return libinput_event_pointer_get_axis_value(event, axis);
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static inline bool
|
|
||||||
calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
enum libinput_pointer_axis axis,
|
|
||||||
@@ -1639,13 +1687,21 @@ calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
if (!libinput_event_pointer_has_axis(event, axis))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
+ /* Event may be LIBINPUT_POINTER_AXIS or
|
|
||||||
+ * LIBINPUT_EVENT_POINTER_SCROLL_{WHEEL|FINGER|CONTINUOUS}, depending
|
|
||||||
+ * on the libinput version.
|
|
||||||
+ *
|
|
||||||
+ * libinput guarantees the axis source is set for the second set of
|
|
||||||
+ * events too but we can switch to the event type once we ditch
|
|
||||||
+ * libinput < 1.19 support.
|
|
||||||
+ */
|
|
||||||
if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
|
|
||||||
value = get_wheel_scroll_value(driver_data, event, axis);
|
|
||||||
} else {
|
|
||||||
double dist = driver_data->options.scroll_pixel_distance;
|
|
||||||
assert(dist != 0.0);
|
|
||||||
|
|
||||||
- value = libinput_event_pointer_get_axis_value(event, axis);
|
|
||||||
+ value = get_finger_or_continuous_scroll_value(event, axis);
|
|
||||||
/* We need to scale this value into our scroll increment range
|
|
||||||
* because that one is constant for the lifetime of the
|
|
||||||
* device. The user may change the ScrollPixelDistance
|
|
||||||
@@ -1665,29 +1721,21 @@ calculate_axis_value(struct xf86libinput *driver_data,
|
|
||||||
|
|
||||||
static void
|
|
||||||
xf86libinput_handle_axis(InputInfoPtr pInfo,
|
|
||||||
- struct libinput_event_pointer *event,
|
|
||||||
+ struct libinput_event *e,
|
|
||||||
enum libinput_pointer_axis_source source)
|
|
||||||
{
|
|
||||||
+ struct libinput_event_pointer *event;
|
|
||||||
DeviceIntPtr dev = pInfo->dev;
|
|
||||||
struct xf86libinput *driver_data = pInfo->private;
|
|
||||||
ValuatorMask *mask = driver_data->valuators;
|
|
||||||
double value;
|
|
||||||
- enum libinput_pointer_axis_source source;
|
|
||||||
|
|
||||||
if ((driver_data->capabilities & CAP_POINTER) == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
valuator_mask_zero(mask);
|
|
||||||
|
|
||||||
- switch(source) {
|
|
||||||
- case LIBINPUT_POINTER_AXIS_SOURCE_FINGER:
|
|
||||||
- case LIBINPUT_POINTER_AXIS_SOURCE_WHEEL:
|
|
||||||
- case LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS:
|
|
||||||
- break;
|
|
||||||
- default:
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
+ event = libinput_event_get_pointer_event(e);
|
|
||||||
if (calculate_axis_value(driver_data,
|
|
||||||
LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL,
|
|
||||||
event,
|
|
||||||
@@ -1705,6 +1753,11 @@ xf86libinput_handle_axis(InputInfoPtr pInfo,
|
|
||||||
&value))
|
|
||||||
valuator_mask_set_double(mask, 2, value);
|
|
||||||
|
|
||||||
+ if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL &&
|
|
||||||
+ !valuator_mask_isset(mask, 2) &&
|
|
||||||
+ !valuator_mask_isset(mask, 3))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
out:
|
|
||||||
xf86PostMotionEventM(dev, Relative, mask);
|
|
||||||
}
|
|
||||||
@@ -2382,10 +2435,30 @@ xf86libinput_handle_event(struct libinput_event *event)
|
|
||||||
libinput_event_get_keyboard_event(event));
|
|
||||||
break;
|
|
||||||
case LIBINPUT_EVENT_POINTER_AXIS:
|
|
||||||
+#if !HAVE_LIBINPUT_AXIS_VALUE_V120
|
|
||||||
+ /* ignore POINTER_AXIS where we have libinput 1.19 and higher */
|
|
||||||
xf86libinput_handle_axis(pInfo,
|
|
||||||
- libinput_event_get_pointer_event(event),
|
|
||||||
+ event,
|
|
||||||
libinput_event_pointer_get_axis_source(event));
|
|
||||||
+#endif
|
|
||||||
break;
|
|
||||||
+#if HAVE_LIBINPUT_AXIS_VALUE_V120
|
|
||||||
+ case LIBINPUT_EVENT_POINTER_SCROLL_WHEEL:
|
|
||||||
+ xf86libinput_handle_axis(pInfo,
|
|
||||||
+ event,
|
|
||||||
+ LIBINPUT_POINTER_AXIS_SOURCE_WHEEL);
|
|
||||||
+ break;
|
|
||||||
+ case LIBINPUT_EVENT_POINTER_SCROLL_FINGER:
|
|
||||||
+ xf86libinput_handle_axis(pInfo,
|
|
||||||
+ event,
|
|
||||||
+ LIBINPUT_POINTER_AXIS_SOURCE_FINGER);
|
|
||||||
+ break;
|
|
||||||
+ case LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS:
|
|
||||||
+ xf86libinput_handle_axis(pInfo,
|
|
||||||
+ event,
|
|
||||||
+ LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS);
|
|
||||||
+ break;
|
|
||||||
+#endif
|
|
||||||
case LIBINPUT_EVENT_TOUCH_FRAME:
|
|
||||||
break;
|
|
||||||
case LIBINPUT_EVENT_TOUCH_UP:
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (xf86-input-libinput-1.1.0.tar.bz2) = 7def9a4834a9203d1672613b1a4b384a0eb3d664818865b375969bf9ca96c512b752859acc8916de9224f7e488f8d59953308e53b983dfa8031ca01fd707fa2b
|
SHA512 (xf86-input-libinput-1.2.0.tar.bz2) = ebff9490d33fd7495df2e03203060a76b3274f0e638bc92f3d95257fac57cdb9dac308e90e54006fe9522b6de3b1f1c38fd5f0b0b75b7051e5422290f43de52d
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
Summary: Xorg X11 libinput input driver
|
Summary: Xorg X11 libinput input driver
|
||||||
Name: xorg-x11-drv-libinput
|
Name: xorg-x11-drv-libinput
|
||||||
Version: 1.1.0
|
Version: 1.2.0
|
||||||
Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|
||||||
@ -23,11 +23,6 @@ Source1: 71-libinput-overrides-wacom.conf
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1413306
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1413306
|
||||||
Patch01: 0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch
|
Patch01: 0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch
|
||||||
|
|
||||||
# High-resolution wheel scrolling (needs libinput 1.19)
|
|
||||||
Patch02: 0001-Upgrade-the-default-scroll-distance-to-120.patch
|
|
||||||
Patch03: 0002-Get-scroll-source-in-the-event-handler.patch
|
|
||||||
Patch04: 0003-Use-the-new-v120-API-from-libinput-if-available.patch
|
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: autoconf automake libtool
|
BuildRequires: autoconf automake libtool
|
||||||
BuildRequires: xorg-x11-server-devel >= 1.14.0
|
BuildRequires: xorg-x11-server-devel >= 1.14.0
|
||||||
@ -83,6 +78,9 @@ Xorg X11 libinput input driver development files.
|
|||||||
%{_includedir}/xorg/libinput-properties.h
|
%{_includedir}/xorg/libinput-properties.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 20 2021 Peter Hutterer <peter.hutterer@redhat.com> - 1.2.0-1
|
||||||
|
- xf86-input-libinput 1.2.0
|
||||||
|
|
||||||
* Fri Sep 03 2021 Peter Hutterer <peter.hutterer@redhat.com> - 1.1.0-2
|
* Fri Sep 03 2021 Peter Hutterer <peter.hutterer@redhat.com> - 1.1.0-2
|
||||||
- Add support for high-resolution wheel scrolling
|
- Add support for high-resolution wheel scrolling
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user