Add a scroll button lock feature

Scroll button locking is an accessibility feature. When enabled, 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>
28 jobs for wip/scroll-button-lock in 4 minutes and 46 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Container Prep
passed #760409
arch:rolling@container-prep

00:00:23

passed #760406
fedora:29@container-prep

00:00:24

passed #760405
fedora:30@container-prep

00:00:23

failed #760404
kvm
fedora:30@qemu-prep

passed #760410
freebsd:11.2@container-prep

00:00:22

passed #760407
ubuntu:18.10@container-prep

00:00:23

passed #760408
ubuntu:19.04@container-prep

00:00:25

 
  Build
passed #760416
fedora:30@build-no-debuggui

00:01:22

passed #760417
fedora:30@build-no-debuggui-nodeps

00:01:43

passed #760414
fedora:30@build-no-docs

00:01:11

passed #760415
fedora:30@build-no-docs-nodeps

00:01:13

passed #760412
fedora:30@build-no-libwacom

00:01:23

passed #760413
fedora:30@build-no-libwacom-nodeps

00:01:19

passed #760418
fedora:30@build-no-tests

00:01:17

passed #760419
fedora:30@build-no-tests-nodeps

00:01:18

passed #760422
fedora:30@flake8

00:00:58

passed #760411
fedora:30@scan-build

00:02:33

passed #760421
fedora:30@usr-bin-env-python

00:00:14

passed #760420
fedora:30@valgrind

00:01:12

 
  Vm
skipped #760423
kvm allowed to fail
fedora:30@test-suite-vm
skipped #760424
kvm allowed to fail
fedora:30@test-suite-vm-valgrind
 
  Distro
passed #760430
arch:rolling@default-build

00:02:13

passed #760425
fedora:29@default-build

00:01:22

passed #760426
fedora:30@default-build

00:01:21

passed #760427
fedora:30@default-build-release

00:00:30

passed #760431
freebsd:11.2@default-build

00:00:18

passed #760428
ubuntu:18.10@default-build

00:01:39

passed #760429
ubuntu:19.04@default-build

00:01:38

 
Name Stage Failure
failed
fedora:30@qemu-prep Container Prep There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job trace