Compare commits

...

11 commits
main ... 1.18.1

Author SHA1 Message Date
Peter Hutterer
7f8113bb88 libinput 1.18.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-08-03 08:56:46 +10:00
satrmb
3a90c008e0 quirks: Chuwi AeroBook Plus has a clickpad falsely claiming to have BTN_RIGHT
Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
(cherry picked from commit 1773973d4d)
2021-08-02 16:45:40 +10:00
Quytelda Kahja
d1704a1f14 Add section for Lenovo Yoga C930 tablet in 50-system-lenovo.quirks.
Fixes #632.

Signed-off-by: Quytelda Kahja <quytelda@tamalin.org>
(cherry picked from commit fc24bba7b3)
2021-08-02 16:45:24 +10:00
Quytelda Kahja
108f580dc1 quirks: Add tablet smoothing attribute.
https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/512 disables
input smoothing for AES devices. However, some AES devices produce
segmented/wobbly curves without smoothing. This change introduces an
`AttrTabletSmoothing` boolean property, which overrides the default smoothing
behavior.

See #632

Signed-off-by: Quytelda Kahja <quytelda@tamalin.org>
(cherry picked from commit e6c4b1d16e)
2021-08-02 16:45:22 +10:00
Sanjiv
62b10a79b8 Update quirks/50-system-chuwi.quirks
Author:    Sanjiv <sanjerat@gmail.com>
Date:      Wed Jul 28 04:27:56 2021 +0000
Signed-off-by: Sanjiv Erat <sanjerat@gmail.com>
(cherry picked from commit 8ee8537491)
2021-08-02 16:45:15 +10:00
Kevin Anderson
d1571400d6 quirks: add Framework Touchpad Quirk
Handle a bug that the touchpad announces BTN_RIGHT

Signed-off-by: Kevin Anderson <andersonkw2@gmail.com>
(cherry picked from commit eb2ed1863e)
2021-08-02 16:45:14 +10:00
Peter Hutterer
ae2ba96d60 quirks: add a quirk for the X61 bezel buttons
Fixes #628

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 29d311d634)
2021-08-02 16:44:45 +10:00
The_Observer
ecc8cec3f7 quirks: add a quirk for the Purism Librem 14v1
Clickpad that announces BTN_RIGHT
Fixes #629

Signed-off-by: The_Observer <The_Observer@lindemann.space>
(cherry picked from commit 0a354dc16f)
2021-08-02 16:44:43 +10:00
Mohamed Elsharnouby
cb0b88b60b quirks: add pressure range for Dell Latitude 7480
Pressing Ctrl/Shift on this model triggers light touches that causes random clicks.
This doesn't occur on Windows 10 so adding this quirk to fix it

Signed-off-by: sharno <sharnoby3@gmail.com>
(cherry picked from commit 5a23665dfb)
2021-08-02 16:44:42 +10:00
Thomas Stenhouse-Pyne
da1bbce784 quirks: add volume rocker quirk for Lenovo Duet 7i
Signed-off-by: Thomas Stenhouse-Pyne <tommpyne@gmail.com>
(cherry picked from commit 0ddb26a068)
2021-08-02 16:44:40 +10:00
Peter Hutterer
011c7d712e quirks: add a quirk for the Huawei Matebook 2020 touchpad
Clickpad that announces BTN_RIGHT

https://bugzilla.redhat.com/show_bug.cgi?id=1972370

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 17783c24df)
2021-08-02 16:44:32 +10:00
12 changed files with 99 additions and 9 deletions

View file

@ -190,3 +190,6 @@ AttrInputPropEnable=INPUT_PROP_BUTTONPAD;INPUT_PROP_POINTER;
AttrPointingStickIntegration=internal|external
Indicates the integration of the pointing stick. This is a string enum.
Only needed for external pointing sticks. These are rare.
AttrTabletSmoothing=1|0
Enables (1) or disables (0) input smoothing for tablet devices. Smoothing is enabled
by default, except on AES devices.

View file

@ -1,5 +1,5 @@
project('libinput', 'c',
version : '1.18.0',
version : '1.18.1',
license : 'MIT/Expat',
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
meson_version : '>= 0.47.0')

View file

@ -0,0 +1,5 @@
[Framework Laptop Touchpad]
MatchName=PIXA3854:00 093A:0274 Touchpad
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnFramework:pnLaptop:*
AttrEventCodeDisable=BTN_RIGHT

View file

@ -0,0 +1,9 @@
[Chuwi Gemibook]
MatchName=HTIX5288:00 093A:1336 Touchpad
MatchUdevType=touchpad
AttrEventCodeDisable=BTN_RIGHT
[Chuwi AeroBook Plus]
MatchName=SYNA3602:01 093A:1336 Touchpad
MatchUdevType=touchpad
AttrEventCodeDisable=BTN_RIGHT

View file

@ -82,6 +82,11 @@ MatchName=*DualPoint Stick
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE7470*
AttrTrackpointMultiplier=0.125
[Latitude 7480 Touchpad]
MatchName=DLL07A0*
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude7480*
AttrPressureRange=35:34
[Latitude 7490 Trackpoint]
MatchName=*Mouse
MatchUdevType=pointingstick

View file

@ -0,0 +1,7 @@
# Clickpad that announces BTN_RIGHT
# https://bugzilla.redhat.com/show_bug.cgi?id=1972370
[Huawei MateBook 2020 Touchpad]
MatchName=ELAN2604:00 04F3:3114 Touchpad
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnHUAWEI:*pvrM1010*
AttrEventCodeDisable=BTN_RIGHT

View file

@ -144,6 +144,12 @@ MatchVendor=0x06CB
MatchProduct=0xCE37
AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE;
[Lenovo Yoga C930 Tablet]
MatchBus=i2c
MatchVendor=0x056A
MatchProduct=0x5196
AttrTabletSmoothing=1
# Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device,
# sends bogus ABS_MT_TOOL_TYPE events for MT_TOOL_PALM
[Lenovo Carbon X1 6th gen]
@ -162,6 +168,11 @@ MatchName=AT Translated Set 2 keyboard
MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX60Tablet:*
ModelTabletModeNoSuspend=1
[Lenovo X61 Tablet]
MatchName=AT Translated Set 2 keyboard
MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX61Tablet:*
ModelTabletModeNoSuspend=1
# Lenovo X220 Tablet special bezel buttons are associated to the
# keyboard and would therefore mistakenly be deactivated as well.
# See https://gitlab.freedesktop.org/libinput/libinput/issues/154
@ -237,4 +248,10 @@ MatchVendor=0x27C6
MatchProduct=0x01E8
AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE;
# Duet 7i tablet switch activated by folding keyboard cover, or removing it.
# We must not disable volume rocker 'keyboard'.
[Lenovo Duet 7i]
MatchName=AT Raw Set 2 keyboard
MatchDMIModalias=dmi:*svnLENOVO:*pvrYogaDuet713IML05:*
ModelTabletModeNoSuspend=1

View file

@ -0,0 +1,7 @@
# Clickpad that announces BTN_RIGHT
# https://gitlab.freedesktop.org/libinput/libinput/-/issues/629
[Librem 14v1 Touchpad]
MatchName=HTIX5288:00 0911:5288 Touchpad
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnPurism:*pnLibrem14*
AttrEventCodeDisable=BTN_RIGHT

View file

@ -2344,18 +2344,17 @@ tablet_init_left_handed(struct evdev_device *device)
tablet_change_to_left_handed);
}
static void
tablet_init_smoothing(struct evdev_device *device,
struct tablet_dispatch *tablet)
static bool
tablet_is_aes(struct evdev_device *device,
struct tablet_dispatch *tablet)
{
size_t history_size = ARRAY_LENGTH(tablet->history.samples);
bool is_aes = false;
#if HAVE_LIBWACOM
const char *devnode;
WacomDeviceDatabase *db;
WacomDevice *libwacom_device = NULL;
const int *stylus_ids;
int nstyli;
bool is_aes = false;
int vid = evdev_device_get_id_vendor(device);
/* Wacom-specific check for whether smoothing is required:
@ -2384,12 +2383,36 @@ tablet_init_smoothing(struct evdev_device *device,
}
}
if (is_aes)
history_size = 1;
libwacom_destroy(libwacom_device);
out:
#endif
return is_aes;
}
static void
tablet_init_smoothing(struct evdev_device *device,
struct tablet_dispatch *tablet)
{
size_t history_size = ARRAY_LENGTH(tablet->history.samples);
struct quirks_context *quirks = NULL;
struct quirks *q = NULL;
bool use_smoothing = true;
quirks = evdev_libinput_context(device)->quirks;
q = quirks_fetch_for_device(quirks, device->udev_device);
/* By default, always enable smoothing except on AES devices.
* AttrTabletSmoothing can override this, if necessary.
*/
if (!q || !quirks_get_bool(q, QUIRK_ATTR_TABLET_SMOOTHING, &use_smoothing))
use_smoothing = !tablet_is_aes(device, tablet);
/* Setting the history size to 1 means we never do any actual smoothing. */
if (!use_smoothing)
history_size = 1;
quirks_unref(q);
tablet->history.size = history_size;
}

View file

@ -280,6 +280,7 @@ quirk_get_name(enum quirk q)
case QUIRK_ATTR_TRACKPOINT_MULTIPLIER: return "AttrTrackpointMultiplier";
case QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD: return "AttrThumbPressureThreshold";
case QUIRK_ATTR_USE_VELOCITY_AVERAGING: return "AttrUseVelocityAveraging";
case QUIRK_ATTR_TABLET_SMOOTHING: return "AttrTabletSmoothing";
case QUIRK_ATTR_THUMB_SIZE_THRESHOLD: return "AttrThumbSizeThreshold";
case QUIRK_ATTR_MSC_TIMESTAMP: return "AttrMscTimestamp";
case QUIRK_ATTR_EVENT_CODE_DISABLE: return "AttrEventCodeDisable";
@ -796,6 +797,17 @@ parse_attr(struct quirks_context *ctx,
p->type = PT_BOOL;
p->value.b = b;
rc = true;
} else if (streq(key, quirk_get_name(QUIRK_ATTR_TABLET_SMOOTHING))) {
p->id = QUIRK_ATTR_TABLET_SMOOTHING;
if (streq(value, "1"))
b = true;
else if (streq(value, "0"))
b = false;
else
goto out;
p->type = PT_BOOL;
p->value.b = b;
rc = true;
} else if (streq(key, quirk_get_name(QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD))) {
p->id = QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD;
if (!safe_atou(value, &v))

View file

@ -103,6 +103,7 @@ enum quirk {
QUIRK_ATTR_TRACKPOINT_MULTIPLIER,
QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD,
QUIRK_ATTR_USE_VELOCITY_AVERAGING,
QUIRK_ATTR_TABLET_SMOOTHING,
QUIRK_ATTR_THUMB_SIZE_THRESHOLD,
QUIRK_ATTR_MSC_TIMESTAMP,
QUIRK_ATTR_EVENT_CODE_DISABLE,

View file

@ -732,6 +732,7 @@ tools_list_device_quirks(struct quirks_context *ctx,
callback(userdata, buf);
break;
case QUIRK_ATTR_USE_VELOCITY_AVERAGING:
case QUIRK_ATTR_TABLET_SMOOTHING:
snprintf(buf, sizeof(buf), "%s=1", name);
callback(userdata, buf);
break;