Hello community,

here is the log from the commit of package xf86-input-libinput for 
openSUSE:Factory checked in at 2018-04-07 20:50:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-libinput (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-input-libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-input-libinput"

Sat Apr  7 20:50:30 2018 rev:27 rq:593850 version:0.27.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-libinput/xf86-input-libinput.changes  
2017-09-21 12:27:11.779838225 +0200
+++ 
/work/SRC/openSUSE:Factory/.xf86-input-libinput.new/xf86-input-libinput.changes 
    2018-04-07 20:50:32.232549203 +0200
@@ -1,0 +2,23 @@
+Thu Apr  5 18:21:40 UTC 2018 - [email protected]
+
+- Add U_Fix-left-handed-property.patch: Fix "left handed" property
+  not set on all pointers (fdo#105667).
+
+-------------------------------------------------------------------
+Wed Apr  4 12:33:43 UTC 2018 - [email protected]
+
+- Update to version 0.27
+  * The libinput driver splits libinput devices into multiple X
+    devices (e.g. a mouse and a keyboard device) and then routes
+    the events accordingly. In the case where there is a user-
+    specific on one device, a VT switch or suspend/resume cycle
+    sometimes overwrote the configuration with the devices 
+    in-order, resulting in the loss of that configuration. e.g.
+    if the keyboard device resumes after the mouse device, the
+    natural scroll setting may get overwritten with the default.
+    This is fixed now.
+    And a note to the man page, we don't support specifying
+    devices as /dev/input/by-id or /dev/input/by-path. It's not
+    worth the effort, so at least point this out in the man page.
+
+-------------------------------------------------------------------

Old:
----
  xf86-input-libinput-0.26.0.tar.bz2
  xf86-input-libinput-0.26.0.tar.bz2.sig

New:
----
  U_Fix-left-handed-property.patch
  xf86-input-libinput-0.27.0.tar.bz2
  xf86-input-libinput-0.27.0.tar.bz2.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xf86-input-libinput.spec ++++++
--- /var/tmp/diff_new_pack.jjtYMf/_old  2018-04-07 20:50:33.080518512 +0200
+++ /var/tmp/diff_new_pack.jjtYMf/_new  2018-04-07 20:50:33.080518512 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package xf86-input-libinput
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           xf86-input-libinput
-Version:        0.26.0
+Version:        0.27.0
 Release:        0
 Summary:        Libinput driver for the Xorg X server
 License:        MIT
@@ -27,6 +27,7 @@
 Source1:        
http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2.sig
 Source2:        %{name}.keyring
 Patch0:         n_enable-tapping.patch
+Patch1:         U_Fix-left-handed-property.patch
 BuildRequires:  pkg-config
 BuildRequires:  pkgconfig(inputproto) >= 2.2
 BuildRequires:  pkgconfig(libinput) >= 1.4.901

++++++ U_Fix-left-handed-property.patch ++++++
>From 0db82219bb2ad10dcdf3ea8fe8e226858190c83b Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <[email protected]>
Date: Thu, 22 Mar 2018 01:47:07 +0200
Subject: Fix "left handed" property not set on all pointers

Remove conditional that prevents the LIBINPUT_PROP_LEFT_HANDED{,DEFAULT}
properties from being set on all pointer devices (only the first got it).
This appears to be a debugging left-over accidentally merged in
6d3bd4544a6a2f194fa.

https://bugs.freedesktop.org/show_bug.cgi?id=105667

Signed-off-by: Peter Hutterer <[email protected]>
---
 src/xf86libinput.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 83ab75d..f9ed8ba 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -4930,9 +4930,6 @@ LibinputInitLeftHandedProperty(DeviceIntPtr dev,
        if (!subdevice_has_capabilities(dev, CAP_POINTER|CAP_TABLET))
                return;
 
-       if (prop_left_handed != 0)
-               return;
-
        if (!libinput_device_config_left_handed_is_available(device) ||
            driver_data->capabilities & CAP_TABLET)
                return;
-- 
cgit v1.1
++++++ xf86-input-libinput-0.26.0.tar.bz2 -> xf86-input-libinput-0.27.0.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/ChangeLog 
new/xf86-input-libinput-0.27.0/ChangeLog
--- old/xf86-input-libinput-0.26.0/ChangeLog    2017-09-15 03:33:54.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/ChangeLog    2018-03-20 02:27:20.000000000 
+0100
@@ -1,3 +1,82 @@
+commit f93bc148d4e6702d50ce320f6d519753c0af7c42
+Author: Peter Hutterer <[email protected]>
+Date:   Tue Mar 20 11:23:57 2018 +1000
+
+    xf86-input-libinput 0.27.0
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 0d4b50fd6e200cb8b720ee0b917b882d2d03542b
+Author: Peter Hutterer <[email protected]>
+Date:   Mon Mar 19 10:00:59 2018 +1000
+
+    man: note that we don't do /dev/input/by-id or /dev/input/by-path
+    
+    For logind-setups we need to match the path libinput wants to open with the
+    Option Device path that the device has so we know when to return the
+    server-fd. This doesn't work for by-id or by-path because libinput resolves
+    those (through udev) to the actual eventX node so our paths look different
+    when they are the same device.
+    
+    This could be fixed but since this is easy enough to work around with a
+    InputClass section and rather a niche case, it's not really worth the 
effort.
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=105562
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+    Reviewed-by: Adam Jackson <[email protected]>
+
+commit 9d9f59fd4c5a57e4663b19c3cace6f78202c4689
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Feb 2 13:54:32 2018 +1000
+
+    Apply the capabilities checks on subdevices when applying the config
+    
+    Properties are initialized on the correct devices only but on resume we'd 
just
+    blindly apply the config from our device. Depending on the resume order, 
this
+    would mean we'd apply a previously set config with a default config.
+    
+    Example:
+    * pointer device with keyboard subdevice
+    * pointer device exports natural scrolling, keyboard device does not and
+      remains at default (off)
+    * client enables natural scrolling on the pointer device
+    * VT switch away, VT switch back
+    * pointer device gets enabled first, enables natural scrolling on the
+      libinput device
+    * keyboard device gets enabled second, resets to the default value
+    
+    Reported-by: Yuxuan Shui <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+    Tested-by: Yuxuan Shui <[email protected]>
+
+commit 73534814909b8b6f4fce8f44b412b2903397bdb0
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Feb 2 13:24:43 2018 +1000
+
+    Split LibinputDeviceApplyConfig into helper functions
+    
+    No functional changes
+
+commit 6d3bd4544a6a2f194fa2ca7e08dca9cc44211e99
+Author: Peter Hutterer <[email protected]>
+Date:   Fri Feb 2 13:27:11 2018 +1000
+
+    Move the subdevice capabilities check into the properties
+    
+    87f9fe3a6fafe60134c6's intention was to not create properties that a 
subdevice
+    doesn't have configuration options for (i.e. if you have a pointer+keyboard
+    device, don't expose tapping configuration on the keyboard subdevice).
+    
+    The result was messy, the checker function had a confusing triple-negation 
and
+    some properties weren't checked - e.g. left-handed was allowed for 
touch/tablet
+    but not for pointer, dwt was allowed for any device.
+    
+    Fix this by moving the check into the property init function directly and
+    inverting the helper function to be easier to read.
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
 commit 2be6487de417473aac85ebd800392cdd8604c4a6
 Author: Peter Hutterer <[email protected]>
 Date:   Fri Sep 15 11:26:54 2017 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/Makefile.in 
new/xf86-input-libinput-0.27.0/Makefile.in
--- old/xf86-input-libinput-0.26.0/Makefile.in  2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/Makefile.in  2018-03-20 02:27:17.000000000 
+0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/aclocal.m4 
new/xf86-input-libinput-0.27.0/aclocal.m4
--- old/xf86-input-libinput-0.26.0/aclocal.m4   2017-09-15 03:33:48.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/aclocal.m4   2018-03-20 02:27:13.000000000 
+0100
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11291,7 +11291,7 @@
 AC_SUBST([CHANGELOG_CMD])
 ]) # XORG_CHANGELOG
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11306,7 +11306,7 @@
 [am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.15.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -11322,14 +11322,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11381,7 +11381,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11412,7 +11412,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11603,7 +11603,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11679,7 +11679,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11876,7 +11876,7 @@
 done
 echo "timestamp for $_am_arg" 
>`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11897,7 +11897,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11918,7 +11918,7 @@
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11968,7 +11968,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12007,7 +12007,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12036,7 +12036,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12083,7 +12083,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12102,7 +12102,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12183,7 +12183,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12243,7 +12243,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12271,7 +12271,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12290,7 +12290,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/compile 
new/xf86-input-libinput-0.27.0/compile
--- old/xf86-input-libinput-0.26.0/compile      2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/compile      2018-03-20 02:27:17.000000000 
+0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -342,6 +343,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/config.guess 
new/xf86-input-libinput-0.27.0/config.guess
--- old/xf86-input-libinput-0.26.0/config.guess 2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/config.guess 2018-03-20 02:27:17.000000000 
+0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-10-02'
+timestamp='2017-08-08'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -259,6 +259,9 @@
     *:Sortix:*:*)
        echo ${UNAME_MACHINE}-unknown-sortix
        exit ;;
+    *:Redox:*:*)
+       echo ${UNAME_MACHINE}-unknown-redox
+       exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -837,10 +840,11 @@
        UNAME_PROCESSOR=`/usr/bin/uname -p`
        case ${UNAME_PROCESSOR} in
            amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'` ;;
-           *)
-               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               UNAME_PROCESSOR=x86_64 ;;
+           i386)
+               UNAME_PROCESSOR=i586 ;;
        esac
+       echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'`
        exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
@@ -1303,14 +1307,21 @@
        if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
            if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') 
| \
-                   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                   grep IS_64BIT_ARCH >/dev/null
+                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                      grep IS_64BIT_ARCH >/dev/null
                then
                    case $UNAME_PROCESSOR in
                        i386) UNAME_PROCESSOR=x86_64 ;;
                        powerpc) UNAME_PROCESSOR=powerpc64 ;;
                    esac
                fi
+               # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+               if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                      grep IS_PPC >/dev/null
+               then
+                   UNAME_PROCESSOR=powerpc
+               fi
            fi
        elif test "$UNAME_PROCESSOR" = i386 ; then
            # Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1334,15 +1345,18 @@
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
+    NEO-*:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
+    NSR-*:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
        exit ;;
+    NSX-*:NONSTOP_KERNEL:*:*)
+       echo nsx-tandem-nsk${UNAME_RELEASE}
+       exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
        exit ;;
@@ -1418,8 +1432,8 @@
 $0: unable to guess system type
 
 This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
   http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/config.sub 
new/xf86-input-libinput-0.27.0/config.sub
--- old/xf86-input-libinput-0.26.0/config.sub   2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/config.sub   2018-03-20 02:27:17.000000000 
+0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-09-05'
+timestamp='2017-04-02'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -263,7 +263,7 @@
        | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
-       | i370 | i860 | i960 | ia64 \
+       | i370 | i860 | i960 | ia16 | ia64 \
        | ip2k | iq2000 \
        | k1om \
        | le32 | le64 \
@@ -301,6 +301,7 @@
        | open8 | or1k | or1knd | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | pru \
        | pyramid \
        | riscv32 | riscv64 \
        | rl78 | rx \
@@ -314,6 +315,7 @@
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | visium \
+       | wasm32 \
        | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
@@ -387,7 +389,7 @@
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | hexagon-* \
-       | i*86-* | i860-* | i960-* | ia64-* \
+       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
        | ip2k-* | iq2000-* \
        | k1om-* \
        | le32-* | le64-* \
@@ -428,6 +430,7 @@
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | pru-* \
        | pyramid-* \
        | riscv32-* | riscv64-* \
        | rl78-* | romp-* | rs6000-* | rx-* \
@@ -444,6 +447,7 @@
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
        | visium-* \
+       | wasm32-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -946,6 +950,9 @@
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
+       nsx-tandem)
+               basic_machine=nsx-tandem
+               ;;
        op50n-* | op60c-*)
                basic_machine=hppa1.1-oki
                os=-proelf
@@ -1241,6 +1248,9 @@
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
+       wasm32)
+               basic_machine=wasm32-unknown
+               ;;
        w65*)
                basic_machine=w65-wdc
                os=-none
@@ -1395,7 +1405,7 @@
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* | -cegcc* \
+             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* 
\
              | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | 
-linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
@@ -1407,7 +1417,7 @@
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
              | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix*)
+             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1636,6 +1646,9 @@
        sparc-* | *-sun)
                os=-sunos4.1.1
                ;;
+       pru-*)
+               os=-elf
+               ;;
        *-be)
                os=-beos
                ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/configure 
new/xf86-input-libinput-0.27.0/configure
--- old/xf86-input-libinput-0.26.0/configure    2017-09-15 03:33:50.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/configure    2018-03-20 02:27:16.000000000 
+0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-input-libinput 0.26.0.
+# Generated by GNU Autoconf 2.69 for xf86-input-libinput 0.27.0.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='xf86-input-libinput'
 PACKAGE_TARNAME='xf86-input-libinput'
-PACKAGE_VERSION='0.26.0'
-PACKAGE_STRING='xf86-input-libinput 0.26.0'
+PACKAGE_VERSION='0.27.0'
+PACKAGE_STRING='xf86-input-libinput 0.27.0'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 PACKAGE_URL=''
 
@@ -1356,7 +1356,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xf86-input-libinput 0.26.0 to adapt to many kinds of 
systems.
+\`configure' configures xf86-input-libinput 0.27.0 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1427,7 +1427,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-input-libinput 0.26.0:";;
+     short | recursive ) echo "Configuration of xf86-input-libinput 0.27.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1561,7 +1561,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-input-libinput configure 0.26.0
+xf86-input-libinput configure 0.27.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1885,7 +1885,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xf86-input-libinput $as_me 0.26.0, which was
+It was created by xf86-input-libinput $as_me 0.27.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2753,7 +2753,7 @@
 
 # Define the identity of the package.
  PACKAGE='xf86-input-libinput'
- VERSION='0.26.0'
+ VERSION='0.27.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19030,7 +19030,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-input-libinput $as_me 0.26.0, which was
+This file was extended by xf86-input-libinput $as_me 0.27.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19096,7 +19096,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xf86-input-libinput config.status 0.26.0
+xf86-input-libinput config.status 0.27.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/configure.ac 
new/xf86-input-libinput-0.27.0/configure.ac
--- old/xf86-input-libinput-0.26.0/configure.ac 2017-09-15 03:33:45.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/configure.ac 2018-03-20 02:27:11.000000000 
+0100
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-libinput],
-        [0.26.0],
+        [0.27.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-libinput])
 AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/depcomp 
new/xf86-input-libinput-0.27.0/depcomp
--- old/xf86-input-libinput-0.26.0/depcomp      2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/depcomp      2018-03-20 02:27:17.000000000 
+0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2013-05-30.07; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -786,6 +786,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/include/Makefile.in 
new/xf86-input-libinput-0.27.0/include/Makefile.in
--- old/xf86-input-libinput-0.26.0/include/Makefile.in  2017-09-15 
03:33:51.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/include/Makefile.in  2018-03-20 
02:27:17.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/install-sh 
new/xf86-input-libinput-0.27.0/install-sh
--- old/xf86-input-libinput-0.26.0/install-sh   2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/install-sh   2018-03-20 02:27:17.000000000 
+0100
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2016-01-11.22; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -496,6 +496,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/man/Makefile.in 
new/xf86-input-libinput-0.27.0/man/Makefile.in
--- old/xf86-input-libinput-0.26.0/man/Makefile.in      2017-09-15 
03:33:51.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/man/Makefile.in      2018-03-20 
02:27:17.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/man/libinput.man 
new/xf86-input-libinput-0.27.0/man/libinput.man
--- old/xf86-input-libinput-0.26.0/man/libinput.man     2017-09-15 
03:33:45.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/man/libinput.man     2018-03-20 
02:27:11.000000000 +0100
@@ -381,6 +381,12 @@
 .TP
 This feature is provided by this driver, not by libinput.
 
+.SH BUGS
+This driver does not work with \fBOption \*qDevice\*q\fR set to an event
+node in \fI/dev/input/by-id\fR and \fI/dev/input/by-path\fR. This can be
+usually be worked by using \fBSection \*qInputClass\*q\fR with an
+appropriate \fBMatch*\fR statement in the __xconfigfile__(__filemansuffix__).
+
 .SH AUTHORS
 Peter Hutterer
 .SH "SEE ALSO"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/missing 
new/xf86-input-libinput-0.27.0/missing
--- old/xf86-input-libinput-0.26.0/missing      2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/missing      2018-03-20 02:27:17.000000000 
+0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -210,6 +210,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/src/Makefile.in 
new/xf86-input-libinput-0.27.0/src/Makefile.in
--- old/xf86-input-libinput-0.26.0/src/Makefile.in      2017-09-15 
03:33:51.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/src/Makefile.in      2018-03-20 
02:27:17.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/src/xf86libinput.c 
new/xf86-input-libinput-0.27.0/src/xf86libinput.c
--- old/xf86-input-libinput-0.26.0/src/xf86libinput.c   2017-09-15 
03:33:45.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/src/xf86libinput.c   2018-03-20 
02:27:11.000000000 +0100
@@ -461,19 +461,34 @@
        }
 }
 
+/**
+ * returns true if the device has one or more of the given capabilities or
+ * if the device isn't a subdevice
+ */
+static inline bool
+subdevice_has_capabilities(DeviceIntPtr dev, uint32_t capabilities)
+{
+       InputInfoPtr pInfo  = dev->public.devicePrivate;
+       struct xf86libinput *driver_data = pInfo->private;
+
+       if (!xf86libinput_is_subdevice(pInfo))
+               return true;
+
+       return !!(driver_data->capabilities & capabilities);
+}
+
 static int
 LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
                  BOOL checkonly);
 static void
 LibinputInitProperty(DeviceIntPtr dev);
 
-static inline void
-LibinputApplyConfig(DeviceIntPtr dev)
+static void
+LibinputApplyConfigSendEvents(DeviceIntPtr dev,
+                             struct xf86libinput *driver_data,
+                             struct libinput_device *device)
 {
        InputInfoPtr pInfo = dev->public.devicePrivate;
-       struct xf86libinput *driver_data = pInfo->private;
-       struct libinput_device *device = driver_data->shared_device->device;
-       unsigned int scroll_button;
 
        if (libinput_device_config_send_events_get_modes(device) != 
LIBINPUT_CONFIG_SEND_EVENTS_ENABLED &&
            libinput_device_config_send_events_set_mode(device,
@@ -481,6 +496,17 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set SendEventsMode %u\n",
                            driver_data->options.sendevents);
+}
+
+static void
+LibinputApplyConfigNaturalScroll(DeviceIntPtr dev,
+                                struct xf86libinput *driver_data,
+                                struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_scroll_has_natural_scroll(device) &&
            libinput_device_config_scroll_set_natural_scroll_enabled(device,
@@ -488,6 +514,17 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set NaturalScrolling to %d\n",
                            driver_data->options.natural_scrolling);
+}
+
+static void
+LibinputApplyConfigAccel(DeviceIntPtr dev,
+                        struct xf86libinput *driver_data,
+                        struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_accel_is_available(device) &&
            libinput_device_config_accel_set_speed(device,
@@ -516,6 +553,17 @@
                }
                xf86IDrvMsg(pInfo, X_ERROR, "Failed to set profile %s\n", 
profile);
        }
+}
+
+static inline void
+LibinputApplyConfigTap(DeviceIntPtr dev,
+                      struct xf86libinput *driver_data,
+                      struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_tap_get_finger_count(device) > 0 &&
            libinput_device_config_tap_set_enabled(device,
@@ -552,6 +600,17 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set Tapping Drag to %d\n",
                            driver_data->options.tap_drag);
+}
+
+static void
+LibinputApplyConfigCalibration(DeviceIntPtr dev,
+                              struct xf86libinput *driver_data,
+                              struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_TOUCH|CAP_TABLET))
+               return;
 
        if (libinput_device_config_calibration_has_matrix(device) &&
            libinput_device_config_calibration_set_matrix(device,
@@ -564,6 +623,17 @@
                            driver_data->options.matrix[4], 
driver_data->options.matrix[5],
                            driver_data->options.matrix[6], 
driver_data->options.matrix[7],
                            driver_data->options.matrix[8]);
+}
+
+static void
+LibinputApplyConfigLeftHanded(DeviceIntPtr dev,
+                              struct xf86libinput *driver_data,
+                              struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER|CAP_TABLET))
+               return;
 
        if (libinput_device_config_left_handed_is_available(device) &&
            libinput_device_config_left_handed_set(device,
@@ -571,6 +641,17 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set LeftHanded to %d\n",
                            driver_data->options.left_handed);
+}
+
+static void
+LibinputApplyConfigScrollMethod(DeviceIntPtr dev,
+                               struct xf86libinput *driver_data,
+                               struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_scroll_set_method(device,
                                                     
driver_data->options.scroll_method) != LIBINPUT_CONFIG_STATUS_SUCCESS) {
@@ -591,12 +672,25 @@
        }
 
        if (libinput_device_config_scroll_get_methods(device) & 
LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN) {
+               unsigned int scroll_button;
+
                scroll_button = 
btn_xorg2linux(driver_data->options.scroll_button);
                if (libinput_device_config_scroll_set_button(device, 
scroll_button) != LIBINPUT_CONFIG_STATUS_SUCCESS)
                        xf86IDrvMsg(pInfo, X_ERROR,
                                    "Failed to set ScrollButton to %u\n",
                                    driver_data->options.scroll_button);
        }
+}
+
+static void
+LibinputApplyConfigClickMethod(DeviceIntPtr dev,
+                              struct xf86libinput *driver_data,
+                              struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_click_set_method(device,
                                                    
driver_data->options.click_method) != LIBINPUT_CONFIG_STATUS_SUCCESS) {
@@ -614,6 +708,17 @@
                            "Failed to set click method to %s\n",
                            method);
        }
+}
+
+static void
+LibinputApplyConfigMiddleEmulation(DeviceIntPtr dev,
+                                  struct xf86libinput *driver_data,
+                                  struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_middle_emulation_is_available(device) &&
            libinput_device_config_middle_emulation_set_enabled(device,
@@ -621,6 +726,17 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set MiddleEmulation to %d\n",
                            driver_data->options.middle_emulation);
+}
+
+static void
+LibinputApplyConfigDisableWhileTyping(DeviceIntPtr dev,
+                                     struct xf86libinput *driver_data,
+                                     struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_dwt_is_available(device) &&
            libinput_device_config_dwt_set_enabled(device,
@@ -628,13 +744,43 @@
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set DisableWhileTyping to %d\n",
                            driver_data->options.disable_while_typing);
+}
+
+static void
+LibinputApplyConfigRotation(DeviceIntPtr dev,
+                           struct xf86libinput *driver_data,
+                           struct libinput_device *device)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
 
        if (libinput_device_config_rotation_is_available(device) &&
            libinput_device_config_rotation_set_angle(device, 
driver_data->options.rotation_angle) != LIBINPUT_CONFIG_STATUS_SUCCESS)
                xf86IDrvMsg(pInfo, X_ERROR,
                            "Failed to set RotationAngle to %.2f\n",
                            driver_data->options.rotation_angle);
+}
 
+static inline void
+LibinputApplyConfig(DeviceIntPtr dev)
+{
+       InputInfoPtr pInfo = dev->public.devicePrivate;
+       struct xf86libinput *driver_data = pInfo->private;
+       struct libinput_device *device = driver_data->shared_device->device;
+
+       LibinputApplyConfigSendEvents(dev, driver_data, device);
+       LibinputApplyConfigNaturalScroll(dev, driver_data, device);
+       LibinputApplyConfigAccel(dev, driver_data, device);
+       LibinputApplyConfigTap(dev, driver_data, device);
+       LibinputApplyConfigCalibration(dev, driver_data, device);
+       LibinputApplyConfigLeftHanded(dev, driver_data, device);
+       LibinputApplyConfigScrollMethod(dev, driver_data, device);
+       LibinputApplyConfigClickMethod(dev, driver_data, device);
+       LibinputApplyConfigMiddleEmulation(dev, driver_data, device);
+       LibinputApplyConfigDisableWhileTyping(dev, driver_data, device);
+       LibinputApplyConfigRotation(dev, driver_data, device);
 }
 
 static int
@@ -4429,6 +4575,9 @@
 {
        BOOL tap = driver_data->options.tapping;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (libinput_device_config_tap_get_finger_count(device) == 0)
                return;
 
@@ -4455,6 +4604,9 @@
 {
        BOOL drag = driver_data->options.tap_drag;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (libinput_device_config_tap_get_finger_count(device) == 0)
                return;
 
@@ -4479,6 +4631,9 @@
 {
        BOOL drag_lock = driver_data->options.tap_drag_lock;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (libinput_device_config_tap_get_finger_count(device) == 0)
                return;
 
@@ -4504,6 +4659,9 @@
        enum libinput_config_tap_button_map map;
        BOOL data[2] = {0};
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        map = driver_data->options.tap_button_map;
 
        if (libinput_device_config_tap_get_finger_count(device) == 0)
@@ -4554,6 +4712,9 @@
 {
        float calibration[9];
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER|CAP_TOUCH|CAP_TABLET))
+               return;
+
        if (!libinput_device_config_calibration_has_matrix(device))
                return;
 
@@ -4591,6 +4752,9 @@
        enum libinput_config_accel_profile profile;
        BOOL profiles[2] = {FALSE};
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (!libinput_device_config_accel_is_available(device) ||
            driver_data->capabilities & CAP_TABLET)
                return;
@@ -4678,6 +4842,9 @@
 {
        BOOL natural_scroll = driver_data->options.natural_scrolling;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (!libinput_device_config_scroll_has_natural_scroll(device))
                return;
 
@@ -4760,6 +4927,12 @@
 {
        BOOL left_handed = driver_data->options.left_handed;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER|CAP_TABLET))
+               return;
+
+       if (prop_left_handed != 0)
+               return;
+
        if (!libinput_device_config_left_handed_is_available(device) ||
            driver_data->capabilities & CAP_TABLET)
                return;
@@ -4787,6 +4960,9 @@
        enum libinput_config_scroll_method method;
        BOOL methods[3] = {FALSE};
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        scroll_methods = libinput_device_config_scroll_get_methods(device);
        if (scroll_methods == LIBINPUT_CONFIG_SCROLL_NO_SCROLL)
                return;
@@ -4874,6 +5050,9 @@
        enum libinput_config_click_method method;
        BOOL methods[2] = {FALSE};
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        click_methods = libinput_device_config_click_get_methods(device);
        if (click_methods == LIBINPUT_CONFIG_CLICK_METHOD_NONE)
                return;
@@ -4942,6 +5121,9 @@
 {
        BOOL middle = driver_data->options.middle_emulation;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (!libinput_device_config_middle_emulation_is_available(device))
                return;
 
@@ -4968,6 +5150,9 @@
 {
        BOOL dwt = driver_data->options.disable_while_typing;
 
+       if (!subdevice_has_capabilities(dev, CAP_POINTER))
+               return;
+
        if (!libinput_device_config_dwt_is_available(device))
                return;
 
@@ -5000,6 +5185,9 @@
                      associations[MAX_BUTTONS] = {0};
        int g, b, r, s;
 
+       if (!subdevice_has_capabilities(dev, CAP_TABLET_PAD))
+               return;
+
        if (!libinput_device_has_capability(device, 
LIBINPUT_DEVICE_CAP_TABLET_PAD))
                return;
 
@@ -5238,19 +5426,6 @@
                                               2, data);
 }
 
-static inline bool
-subdevice_filter_for_capabilities(DeviceIntPtr dev,
-                                 uint32_t capabilities)
-{
-       InputInfoPtr pInfo  = dev->public.devicePrivate;
-       struct xf86libinput *driver_data = pInfo->private;
-
-       if (!xf86libinput_is_subdevice(pInfo))
-               return false;
-
-       return !(driver_data->capabilities & capabilities);
-}
-
 static void
 LibinputInitProperty(DeviceIntPtr dev)
 {
@@ -5263,35 +5438,21 @@
 
        prop_float = XIGetKnownProperty("FLOAT");
 
-       /* On a subdevice, we likely only have a keyboard, so filter out the
-        * properties for the capabilities we don't have */
-       if (!subdevice_filter_for_capabilities(dev, CAP_POINTER|CAP_TOUCH)) {
-               LibinputInitTapProperty(dev, driver_data, device);
-               LibinputInitTapDragProperty(dev, driver_data, device);
-               LibinputInitTapDragLockProperty(dev, driver_data, device);
-               LibinputInitTapButtonmapProperty(dev, driver_data, device);
-               LibinputInitNaturalScrollProperty(dev, driver_data, device);
-       }
-
-       if (!subdevice_filter_for_capabilities(dev, CAP_TOUCH|CAP_TABLET)) {
-               LibinputInitCalibrationProperty(dev, driver_data, device);
-               LibinputInitLeftHandedProperty(dev, driver_data, device);
-               LibinputInitAccelProperty(dev, driver_data, device);
-       }
-
-       if (!subdevice_filter_for_capabilities(dev, CAP_POINTER)) {
-               LibinputInitScrollMethodsProperty(dev, driver_data, device);
-               LibinputInitClickMethodsProperty(dev, driver_data, device);
-               LibinputInitMiddleEmulationProperty(dev, driver_data, device);
-               LibinputInitRotationAngleProperty(dev, driver_data, device);
-       }
-
-       if (!subdevice_filter_for_capabilities(dev, CAP_TABLET_PAD)) {
-               LibinputInitModeGroupProperties(dev, driver_data, device);
-       }
-
-       LibinputInitSendEventsProperty(dev, driver_data, device);
+       LibinputInitTapProperty(dev, driver_data, device);
+       LibinputInitTapDragProperty(dev, driver_data, device);
+       LibinputInitTapDragLockProperty(dev, driver_data, device);
+       LibinputInitTapButtonmapProperty(dev, driver_data, device);
+       LibinputInitNaturalScrollProperty(dev, driver_data, device);
        LibinputInitDisableWhileTypingProperty(dev, driver_data, device);
+       LibinputInitScrollMethodsProperty(dev, driver_data, device);
+       LibinputInitClickMethodsProperty(dev, driver_data, device);
+       LibinputInitMiddleEmulationProperty(dev, driver_data, device);
+       LibinputInitRotationAngleProperty(dev, driver_data, device);
+       LibinputInitAccelProperty(dev, driver_data, device);
+       LibinputInitCalibrationProperty(dev, driver_data, device);
+       LibinputInitLeftHandedProperty(dev, driver_data, device);
+       LibinputInitModeGroupProperties(dev, driver_data, device);
+       LibinputInitSendEventsProperty(dev, driver_data, device);
 
        /* Device node property, read-only  */
        device_node = driver_data->path;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/test/Makefile.in 
new/xf86-input-libinput-0.27.0/test/Makefile.in
--- old/xf86-input-libinput-0.26.0/test/Makefile.in     2017-09-15 
03:33:51.000000000 +0200
+++ new/xf86-input-libinput-0.27.0/test/Makefile.in     2018-03-20 
02:27:17.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-libinput-0.26.0/test-driver 
new/xf86-input-libinput-0.27.0/test-driver
--- old/xf86-input-libinput-0.26.0/test-driver  2017-09-15 03:33:51.000000000 
+0200
+++ new/xf86-input-libinput-0.27.0/test-driver  2018-03-20 02:27:17.000000000 
+0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2013-07-13.22; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -143,6 +143,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:



Reply via email to