Add a scroll button lock feature

Scroll button locking is an accessibility feature. When eneabled, the scroll
button does not need to be held down, the first click holds it logically down,
to be released on the second click of that same button.

This is implemented as simple event filter, so we still get the same behavior
from the emulated logical button, i.e. a physical double click results in a
single logical click of that button provided no scrolling was triggered.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
17 jobs for wip/scroll-button-lock in 10 minutes and 11 seconds (queued for 2 seconds)
latest
Status Job ID Name Coverage
  Build
passed #182092
arch:rolling@default-build

00:01:18

passed #182077
fedora:28@default-build

00:00:38

passed #182085
fedora:29@build-no-debuggui

00:00:56

passed #182086
fedora:29@build-no-debuggui-nodeps

00:01:02

passed #182083
fedora:29@build-no-docs

00:00:51

passed #182084
fedora:29@build-no-docs-nodeps

00:01:09

passed #182081
fedora:29@build-no-libwacom

00:00:32

passed #182082
fedora:29@build-no-libwacom-nodeps

00:01:11

passed #182087
fedora:29@build-no-tests

00:00:59

passed #182088
fedora:29@build-no-tests-nodeps

00:01:02

passed #182078
fedora:29@default-build

00:00:37

failed #182079
fedora:29@default-build-release

00:00:25

passed #182080
fedora:29@scan-build

00:09:06

passed #182089
fedora:29@valgrind

00:05:54

passed #182093
freebsd:11.2@default-build

00:01:02

passed #182091
ubuntu:18.04@default-build

00:01:12

passed #182090
ubuntu:18.10@default-build

00:01:15

 
Name Stage Failure
failed
fedora:29@default-build-release Build
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
[183/187] Compiling C object 'libinput-test-suite@exe/test_test-touchpad.c.o'.
[184/187] Generating sphinx with a custom command.
ninja: build stopped: subcommand failed.
Uploading artifacts...
build dir/meson-logs: found 2 matching files
Uploading artifacts to coordinator... ok
id=182079 responseStatus=201 Created token=575cxkpe
ERROR: Job failed: exit code 1