Compare commits

...

8 Commits

Author SHA1 Message Date
Peter Hutterer
400bf493d1 xf86-input-libinput 0.29.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-12 12:35:51 +10:00
Peter Hutterer
27a88897be Add basic Gitlab CI for testing the build
This merely tests against the devel package in Fedora, not against the xserver
from git. Should be enough, the driver here doesn't change enough to need the
git builds.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-12 11:44:56 +10:00
Peter Hutterer
d5867e5db6 Fix compiler warning about unhandled switch events
This bumps the required libinput version to 1.7 - which has been out for over
two years now. That's conservative enough.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-12 10:36:08 +10:00
Peter Hutterer
1ef2ed874e Check for the tool type too when creating subdevices
Fixed #25

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-07-31 00:32:44 +00:00
Peter Hutterer
3c9052d886 Fix wrong enum type
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-07-31 00:32:44 +00:00
Peter Hutterer
39b0bb4585 Revert "Upgrade the default scroll distance to 120"
This was part of the high-resolution wheel work that was factored out ahead of
time. Problem is: this breaks scroll button emulation in the server as we
use the distance to determine when we click buttons 4-7.

Before: movement of 15 normalized pixel units on a touchpad - one click. Now:
120 of those units. So that's a bit less than ideal.

The change to 120 can be done, but needs the corresponding handling in the
axis distance calculations.

Fixes #24

This reverts commit 055481187d.
2019-07-30 11:51:12 +10:00
David Rosca
8923d18d25 Also use type to match tablet tool with device
On devices with tools having both serial and id 0,
it would fail to create separate subdevices.

Thinkpad X220T (Wacom ISDv4 E6) now correctly registers
Pen and Eraser xinput devices.
2019-02-25 18:43:42 +01:00
Peter Hutterer
055481187d 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.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-02-12 15:40:53 +10:00
3 changed files with 81 additions and 5 deletions

64
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,64 @@
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0:
include:
- project: 'wayland/ci-templates'
ref: 955e61e67cf29327cf907432f668df9eec4ca6a2 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
file: '/templates/fedora.yml'
variables:
FEDORA_RPMS: 'git autoconf automake libtool make xorg-x11-server-devel libudev-devel libevdev-devel libinput-devel xorg-x11-util-macros'
FEDORA_TAG: '2019-08-12.0'
UPSTREAM_REPO: xorg/drivers/xf86-input-libinput
BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest
FEDORA_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$FEDORA_TAG
stages:
- containers-build
- build
container_build:
extends: .fedora@container-ifnot-exists
stage: containers-build
variables:
GIT_STRATEGY: none
FEDORA_VERSION: 30
.default_artifacts: &default_artifacts
artifacts:
name: "automake-logs-$CI_JOB_NAME"
when: always
expire_in: 1 week
paths:
- _builddir/config.log
.default_build: &default_build
script:
- mkdir _builddir _inst
- pushd _builddir > /dev/null
- ../autogen.sh --prefix=$(realpath ../_inst) --disable-silent-rules
- make && make check
- make install
- popd > /dev/null
.build@template:
stage: build
<<: *default_artifacts
<<: *default_build
dependencies: []
.fedora-build@template:
extends: .build@template
image: $FEDORA_CONTAINER_IMAGE
fedora:30@default-build:
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30

View File

@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-libinput],
[0.28.2],
[0.29.0],
[https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput/issues],
[xf86-input-libinput])
AC_CONFIG_SRCDIR([Makefile.am])
@@ -45,7 +45,7 @@ XORG_DEFAULT_OPTIONS
# Obtain compiler/linker options from server and required extensions
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.10] xproto [inputproto >= 2.2])
PKG_CHECK_MODULES(LIBINPUT, [libinput >= 1.4.901])
PKG_CHECK_MODULES(LIBINPUT, [libinput >= 1.7.0])
OLD_LIBS=$LIBS
OLD_CFLAGS=$CFLAGS

View File

@@ -1791,7 +1791,9 @@ xf86libinput_pick_device(struct xf86libinput_device *shared_device,
if (libinput_tablet_tool_get_serial(driver_data->tablet_tool) ==
libinput_tablet_tool_get_serial(tool) &&
libinput_tablet_tool_get_tool_id(driver_data->tablet_tool) ==
libinput_tablet_tool_get_tool_id(tool))
libinput_tablet_tool_get_tool_id(tool) &&
libinput_tablet_tool_get_type(driver_data->tablet_tool) ==
libinput_tablet_tool_get_type(tool))
return driver_data->pInfo;
}
}
@@ -2062,6 +2064,7 @@ xf86libinput_create_tool_subdevice(InputInfoPtr pInfo,
struct xf86libinput_tablet_tool *t;
struct xf86libinput_tablet_tool_event_queue *queue;
struct libinput_tablet_tool *tool;
enum libinput_tablet_tool_type tool_type;
uint64_t serial, tool_id;
XF86OptionPtr options = NULL;
char name[64];
@@ -2081,12 +2084,14 @@ xf86libinput_create_tool_subdevice(InputInfoPtr pInfo,
tool = libinput_event_tablet_tool_get_tool(event);
serial = libinput_tablet_tool_get_serial(tool);
tool_id = libinput_tablet_tool_get_tool_id(tool);
tool_type = libinput_tablet_tool_get_type(tool);
t->tool = libinput_tablet_tool_ref(tool);
xorg_list_append(&t->node, &shared_device->unclaimed_tablet_tool_list);
options = xf86ReplaceIntOption(options, "_libinput/tablet-tool-serial", serial);
options = xf86ReplaceIntOption(options, "_libinput/tablet-tool-id", tool_id);
options = xf86ReplaceIntOption(options, "_libinput/tablet-tool-type", tool_type);
/* Convert the name to "<base name> <tool type> (serial number)" */
if (snprintf(name,
sizeof(name),
@@ -2111,13 +2116,15 @@ xf86libinput_find_device_for_tool(InputInfoPtr pInfo,
struct xf86libinput_device *shared_device = driver_data->shared_device;
uint64_t serial = libinput_tablet_tool_get_serial(tool);
uint64_t tool_id = libinput_tablet_tool_get_tool_id(tool);
enum libinput_tablet_tool_type tool_type = libinput_tablet_tool_get_type(tool);
xorg_list_for_each_entry(dev,
&shared_device->device_list,
shared_device_link) {
if (dev->tablet_tool &&
libinput_tablet_tool_get_serial(dev->tablet_tool) == serial &&
libinput_tablet_tool_get_tool_id(dev->tablet_tool) == tool_id) {
libinput_tablet_tool_get_tool_id(dev->tablet_tool) == tool_id &&
libinput_tablet_tool_get_type(dev->tablet_tool) == tool_type) {
return dev->pInfo->dev;
}
}
@@ -2332,6 +2339,8 @@ xf86libinput_handle_event(struct libinput_event *event)
xf86libinput_handle_tablet_pad_strip(pInfo,
libinput_event_get_tablet_pad_event(event));
break;
case LIBINPUT_EVENT_SWITCH_TOGGLE:
break;
}
out:
@@ -3296,16 +3305,19 @@ claim_tablet_tool(InputInfoPtr pInfo)
struct xf86libinput_device *shared_device = driver_data->shared_device;
struct xf86libinput_tablet_tool_event_queue *queue;
struct xf86libinput_tablet_tool *t;
enum libinput_tablet_tool_type tool_type;
uint64_t serial, tool_id;
serial = (uint32_t)xf86CheckIntOption(pInfo->options, "_libinput/tablet-tool-serial", 0);
tool_id = (uint32_t)xf86CheckIntOption(pInfo->options, "_libinput/tablet-tool-id", 0);
tool_type = (uint32_t)xf86CheckIntOption(pInfo->options, "_libinput/tablet-tool-type", 0);
xorg_list_for_each_entry(t,
&shared_device->unclaimed_tablet_tool_list,
node) {
if (libinput_tablet_tool_get_serial(t->tool) == serial &&
libinput_tablet_tool_get_tool_id(t->tool) == tool_id) {
libinput_tablet_tool_get_tool_id(t->tool) == tool_id &&
libinput_tablet_tool_get_type(t->tool) == tool_type) {
driver_data->tablet_tool = t->tool;
queue = libinput_tablet_tool_get_user_data(t->tool);
if (queue)