Hello community,

here is the log from the commit of package xf86-input-evdev for 
openSUSE:Factory checked in at 2017-01-23 11:22:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-evdev (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-input-evdev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-input-evdev"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-evdev/xf86-input-evdev.changes        
2016-10-06 12:29:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-input-evdev.new/xf86-input-evdev.changes   
2017-01-23 11:22:06.623877778 +0100
@@ -1,0 +2,9 @@
+Thu Jan 19 13:09:53 UTC 2017 - sndir...@suse.com
+
+- update to version 2.10.5
+  * Two fixes, one new feature for the evdev driver. The new
+    feature is the ability to change the emulated middle button
+    number (e.g. useful on devices with physical middle button
+    as well).
+
+-------------------------------------------------------------------

Old:
----
  xf86-input-evdev-2.10.4.tar.bz2
  xf86-input-evdev-2.10.4.tar.bz2.sig

New:
----
  xf86-input-evdev-2.10.5.tar.bz2
  xf86-input-evdev-2.10.5.tar.bz2.sig

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

Other differences:
------------------
++++++ xf86-input-evdev.spec ++++++
--- /var/tmp/diff_new_pack.7DOmnK/_old  2017-01-23 11:22:07.079813050 +0100
+++ /var/tmp/diff_new_pack.7DOmnK/_new  2017-01-23 11:22:07.083812482 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xf86-input-evdev
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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-evdev
-Version:        2.10.4
+Version:        2.10.5
 Release:        0
 Summary:        Generic Linux input driver for the Xorg X server
 License:        MIT

++++++ xf86-input-evdev-2.10.4.tar.bz2 -> xf86-input-evdev-2.10.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/ChangeLog 
new/xf86-input-evdev-2.10.5/ChangeLog
--- old/xf86-input-evdev-2.10.4/ChangeLog       2016-10-01 09:54:15.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/ChangeLog       2017-01-18 04:15:33.000000000 
+0100
@@ -1,3 +1,66 @@
+commit 1dd61111adea1d137877ca1a9642e1552a152355
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Wed Jan 18 13:14:29 2017 +1000
+
+    evdev 2.10.5
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+
+commit 231061d004ee4e924bb736adc428287367d2001c
+Author: Alexander Volkov <a.vol...@rusbitech.ru>
+Date:   Mon Dec 26 17:39:32 2016 +0300
+
+    Don't send pointer events in addition to touch events
+    
+    Updating abs_vals for touch events since 
d24431a1863c49aa9edcabf535ffa64bfa87053c
+    leads to posting Motion events with updated coordinates to the X server,
+    which in turn resends them to clients.
+    
+    Don't queue Motion events for touch events, the X server should
+    synthesize them itself.
+    
+    Signed-off-by: Alexander Volkov <a.vol...@rusbitech.ru>
+    Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+
+commit 425ed6017a42937f69c1e8450ea8f3c6c6c20928
+Author: David Strobach <laloc...@gmail.com>
+Date:   Thu Nov 17 20:47:31 2016 +0100
+
+    Middle emulation - make the emulated button number configurable
+    
+    Sometimes it may be desirable to remap physical middle button
+    to something else and use emulation instead. The emulation is
+    however hardcoded to emulate physical button 2, so the emulated
+    button gets remapped together with the physical one. This patch
+    adds the Emulate3Button configuration option to allow for user
+    selection of the emulated button number and a configuration
+    like this:
+    
+    Section "InputClass"
+        Identifier "Middle button emulation config"
+        MatchProduct ".... some device ..."
+        MatchDriver "evdev"
+        Option "Emulate3Buttons" "on"
+        Option "Emulate3Button" "9"
+    EndSection
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+
+commit 7251e42dfbac11eb1619b0a3881ee463b6d76c95
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Fri Oct 21 09:42:23 2016 +1000
+
+    Fix off-by-one error counting axes
+    
+    We stopped counting one too early, but still initialized that axis later,
+    leading to a bug macro to trigger.
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=97956
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    Reviewed-by: Hans de Goede <hdego...@redhat.com>
+
 commit 551db5b86e2a19e027e57571b8e5405dacb8bd67
 Author: Peter Hutterer <peter.hutte...@who-t.net>
 Date:   Sat Oct 1 17:48:30 2016 +1000
@@ -1390,25 +1453,25 @@
     (1000, 1000). The third touch begins after the first two end, and is at
     (500, 500).
     
-    ABS_MT_SLOT                0       /* Set touch slot */
-    ABS_MT_TRACKING_ID 0       /* New touch with ID 0 in slot 0 */
-    ABS_MT_POSITION_X  500     /* Initial X position */
-    ABS_MT_POSITION_Y  500     /* Initial Y position */
-    ABS_MT_SLOT                1       /* Set touch slot */
-    ABS_MT_TRACKING_ID 1       /* New touch with ID 1 in slot 1 */
-    ABS_MT_POSITION_X  1000    /* Initial X position */
-    ABS_MT_POSITION_Y  1000    /* Initial Y position */
-    SYNC                               /* End of frame */
-    ABS_MT_SLOT                0       /* Go back to slot 0 */
-    ABS_MT_TRACKING_ID -1      /* Touch in slot 0 ended */
-    ABS_MT_SLOT                1       /* Go to slot 1 */
-    ABS_MT_TRACKING_ID -1      /* Touch in slot 1 ended */
-    SYNC                               /* End of frame */
-    ABS_MT_SLOT                0       /* Go back to slot 0 */
-    ABS_MT_TRACKING_ID 2       /* New touch in slot 0 with ID 2 */
-    SYNC                               /* End of frame */
-    ABS_MT_TRACKING_ID -1      /* Touch in last slot (0) ended */
-    SYNC                               /* End of frame */
+    ABS_MT_SLOT             0       /* Set touch slot */
+    ABS_MT_TRACKING_ID      0       /* New touch with ID 0 in slot 0 */
+    ABS_MT_POSITION_X       500     /* Initial X position */
+    ABS_MT_POSITION_Y       500     /* Initial Y position */
+    ABS_MT_SLOT             1       /* Set touch slot */
+    ABS_MT_TRACKING_ID      1       /* New touch with ID 1 in slot 1 */
+    ABS_MT_POSITION_X       1000    /* Initial X position */
+    ABS_MT_POSITION_Y       1000    /* Initial Y position */
+    SYNC                            /* End of frame */
+    ABS_MT_SLOT             0       /* Go back to slot 0 */
+    ABS_MT_TRACKING_ID      -1      /* Touch in slot 0 ended */
+    ABS_MT_SLOT             1       /* Go to slot 1 */
+    ABS_MT_TRACKING_ID      -1      /* Touch in slot 1 ended */
+    SYNC                            /* End of frame */
+    ABS_MT_SLOT             0       /* Go back to slot 0 */
+    ABS_MT_TRACKING_ID      2       /* New touch in slot 0 with ID 2 */
+    SYNC                            /* End of frame */
+    ABS_MT_TRACKING_ID      -1      /* Touch in last slot (0) ended */
+    SYNC                            /* End of frame */
     
     Note that touch 2 has the same X and Y position as touch 0. This is
     implied because no new value was emitted for slot 0. In fact, Linux will
@@ -1890,7 +1953,7 @@
     Merge branch 'smooth-scrolling'
     
     Conflicts:
-       src/evdev.c
+            src/evdev.c
     
     Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
 
@@ -4042,7 +4105,7 @@
     Coverity Prevent: NO_EFFECT in EvdevWheelEmuSetProperty:
     
     Event unsigned_compare: Comparing unsigned less than zero is never true. 
"pEvdev->emulateWheel.timeout < 0UL"
-    342                    if (pEvdev->emulateWheel.timeout < 0)
+    342                 if (pEvdev->emulateWheel.timeout < 0)
     
     Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
 
@@ -6459,7 +6522,7 @@
     
     Conflicts:
     
-       src/evdev.h
+            src/evdev.h
 
 commit 294355842ba9fb3cb3bbd7bfd60c9ca3ce704475
 Author: Zephaniah E. Hull <warp@agamemnon.b5>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/Makefile.in 
new/xf86-input-evdev-2.10.5/Makefile.in
--- old/xf86-input-evdev-2.10.4/Makefile.in     2016-10-01 09:49:20.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/Makefile.in     2017-01-18 04:15:30.000000000 
+0100
@@ -210,8 +210,7 @@
 DIST_SUBDIRS = $(SUBDIRS)
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
        $(srcdir)/xorg-evdev.pc.in COPYING ChangeLog INSTALL README \
-       compile config.guess config.sub depcomp install-sh ltmain.sh \
-       missing
+       compile config.guess config.sub install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -691,7 +690,7 @@
          ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c 
>$(distdir).tar.gz
+       tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c 
>$(distdir).tar.gz
        $(am__post_remove_distdir)
 dist-bzip2: distdir
        tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c 
>$(distdir).tar.bz2
@@ -716,7 +715,7 @@
        @echo WARNING: "Support for shar distribution archives is" \
                       "deprecated." >&2
        @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
        $(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -734,7 +733,7 @@
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lz*) \
@@ -744,7 +743,7 @@
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/aclocal.m4 
new/xf86-input-evdev-2.10.5/aclocal.m4
--- old/xf86-input-evdev-2.10.4/aclocal.m4      2016-10-01 09:49:19.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/aclocal.m4      2017-01-18 04:15:29.000000000 
+0100
@@ -9053,7 +9053,7 @@
 m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
 
 dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
-dnl serial 11 (pkg-config-0.29)
+dnl serial 11 (pkg-config-0.29.1)
 dnl
 dnl Copyright © 2004 Scott James Remnant <sc...@netsplit.com>.
 dnl Copyright © 2012-2015 Dan Nicholson <dbn.li...@gmail.com>
@@ -9095,7 +9095,7 @@
 dnl See the "Since" comment for each macro you use to see what version
 dnl of the macros you require.
 m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29])
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
 m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
     [m4_fatal([pkg.m4 version $1 or higher is required but 
]PKG_MACROS_VERSION[ found])])
 ])dnl PKG_PREREQ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/compile 
new/xf86-input-evdev-2.10.5/compile
--- old/xf86-input-evdev-2.10.4/compile 2014-11-26 00:23:52.000000000 +0100
+++ new/xf86-input-evdev-2.10.5/compile 2017-01-18 04:15:30.000000000 +0100
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/config.guess 
new/xf86-input-evdev-2.10.5/config.guess
--- old/xf86-input-evdev-2.10.4/config.guess    2014-11-26 00:23:52.000000000 
+0100
+++ new/xf86-input-evdev-2.10.5/config.guess    2017-01-18 04:15:30.000000000 
+0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2014-03-23'
+timestamp='2015-01-01'
 
 # 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
@@ -24,12 +24,12 @@
 # program.  This Exception is an additional permission under section 7
 # of the GNU General Public License, version 3 ("GPLv3").
 #
-# Originally written by Per Bothner.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
 # 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 #
-# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
+# Please send patches to <config-patc...@gnu.org>.
 
 
 me=`echo "$0" | sed -e 's,.*/,,'`
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 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."
@@ -579,8 +579,9 @@
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
+       if [ -x /usr/bin/lslpp ] ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/config.sub 
new/xf86-input-evdev-2.10.5/config.sub
--- old/xf86-input-evdev-2.10.4/config.sub      2014-11-26 00:23:52.000000000 
+0100
+++ new/xf86-input-evdev-2.10.5/config.sub      2017-01-18 04:15:30.000000000 
+0100
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2014-07-28'
+timestamp='2015-01-01'
 
 # 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
@@ -25,7 +25,7 @@
 # of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
+# Please send patches to <config-patc...@gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -68,7 +68,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 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."
@@ -260,7 +260,7 @@
        | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | epiphany \
-       | fido | fr30 | frv \
+       | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
        | i370 | i860 | i960 | ia64 \
@@ -302,6 +302,7 @@
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
+       | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
@@ -312,6 +313,7 @@
        | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
        | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
@@ -326,6 +328,9 @@
        c6x)
                basic_machine=tic6x-unknown
                ;;
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
@@ -436,6 +441,7 @@
        | ubicom32-* \
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
+       | visium-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -773,6 +779,9 @@
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/configure 
new/xf86-input-evdev-2.10.5/configure
--- old/xf86-input-evdev-2.10.4/configure       2016-10-01 09:49:20.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/configure       2017-01-18 04:15:30.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-evdev 2.10.4.
+# Generated by GNU Autoconf 2.69 for xf86-input-evdev 2.10.5.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='xf86-input-evdev'
 PACKAGE_TARNAME='xf86-input-evdev'
-PACKAGE_VERSION='2.10.4'
-PACKAGE_STRING='xf86-input-evdev 2.10.4'
+PACKAGE_VERSION='2.10.5'
+PACKAGE_STRING='xf86-input-evdev 2.10.5'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 PACKAGE_URL=''
 
@@ -1364,7 +1364,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-evdev 2.10.4 to adapt to many kinds of 
systems.
+\`configure' configures xf86-input-evdev 2.10.5 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1435,7 +1435,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-input-evdev 2.10.4:";;
+     short | recursive ) echo "Configuration of xf86-input-evdev 2.10.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1574,7 +1574,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-input-evdev configure 2.10.4
+xf86-input-evdev configure 2.10.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1898,7 +1898,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-evdev $as_me 2.10.4, which was
+It was created by xf86-input-evdev $as_me 2.10.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2766,7 +2766,7 @@
 
 # Define the identity of the package.
  PACKAGE='xf86-input-evdev'
- VERSION='2.10.4'
+ VERSION='2.10.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19227,7 +19227,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-evdev $as_me 2.10.4, which was
+This file was extended by xf86-input-evdev $as_me 2.10.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19293,7 +19293,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-evdev config.status 2.10.4
+xf86-input-evdev config.status 2.10.5
 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-evdev-2.10.4/configure.ac 
new/xf86-input-evdev-2.10.5/configure.ac
--- old/xf86-input-evdev-2.10.4/configure.ac    2016-10-01 09:49:07.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/configure.ac    2017-01-18 04:14:01.000000000 
+0100
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.10.4],
+        [2.10.5],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/depcomp 
new/xf86-input-evdev-2.10.5/depcomp
--- old/xf86-input-evdev-2.10.4/depcomp 2014-11-26 00:23:52.000000000 +0100
+++ new/xf86-input-evdev-2.10.5/depcomp 2017-01-18 04:15:31.000000000 +0100
@@ -3,7 +3,7 @@
 
 scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/include/evdev-properties.h 
new/xf86-input-evdev-2.10.5/include/evdev-properties.h
--- old/xf86-input-evdev-2.10.4/include/evdev-properties.h      2016-01-13 
07:44:52.000000000 +0100
+++ new/xf86-input-evdev-2.10.5/include/evdev-properties.h      2016-11-21 
05:59:44.000000000 +0100
@@ -33,6 +33,8 @@
 #define EVDEV_PROP_MIDBUTTON "Evdev Middle Button Emulation"
 /* CARD32 */
 #define EVDEV_PROP_MIDBUTTON_TIMEOUT "Evdev Middle Button Timeout"
+/* CARD8 */
+#define EVDEV_PROP_MIDBUTTON_BUTTON "Evdev Middle Button Button"
 
 /* Wheel emulation */
 /* BOOL */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/install-sh 
new/xf86-input-evdev-2.10.5/install-sh
--- old/xf86-input-evdev-2.10.4/install-sh      2014-11-26 00:23:52.000000000 
+0100
+++ new/xf86-input-evdev-2.10.5/install-sh      2017-01-18 04:15:30.000000000 
+0100
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2013-12-25.23; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='  '
 nl='
 '
-IFS=" ""       $nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,17 +64,6 @@
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -97,7 +82,7 @@
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-       shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-       case $mode in
-         *' '* | *'    '* | *'
-'*       | *'*'* | *'?'* | *'['*)
-           echo "$0: invalid mode: $mode" >&2
-           exit 1;;
-       esac
-       shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-       shift;;
+        shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-       # Protect names problematic for 'test' and other utilities.
-       case $dst_arg in
-         -* | [=\(\)!]) dst_arg=./$dst_arg;;
-       esac
-       shift;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
-    -T) no_target_directory=true;;
+    -T) is_target_a_directory=never;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)        shift
-       break;;
+    --) shift
+        break;;
 
-    -*)        echo "$0: invalid option: $1" >&2
-       exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@
 fi
 
 if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
   trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@
 
     *[0-7])
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -269,41 +274,15 @@
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-       echo "$0: $dst_arg: Is a directory" >&2
-       exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-       (dirname "$dst") 2>/dev/null ||
-       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-            X"$dst" : 'X\(//\)[^/]' \| \
-            X"$dst" : 'X\(//\)$' \| \
-            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-       echo X"$dst" |
-           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)[^/].*/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\).*/{
-                  s//\1/
-                  q
-                }
-                s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -314,74 +293,74 @@
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-       # Create intermediate dirs using mode 755 as modified by the umask.
-       # This is like FreeBSD 'install' as of 1997-10-28.
-       umask=`umask`
-       case $stripcmd.$umask in
-         # Optimize common cases.
-         *[2367][2367]) mkdir_umask=$umask;;
-         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-         *[0-7])
-           mkdir_umask=`expr $umask + 22 \
-             - $umask % 100 % 40 + $umask % 20 \
-             - $umask % 10 % 4 + $umask % 2
-           `;;
-         *) mkdir_umask=$umask,go-w;;
-       esac
-
-       # With -d, create the new directory with the user-specified mode.
-       # Otherwise, rely on $mkdir_umask.
-       if test -n "$dir_arg"; then
-         mkdir_mode=-m$mode
-       else
-         mkdir_mode=
-       fi
-
-       posix_mkdir=false
-       case $umask in
-         *[123567][0-7][0-7])
-           # POSIX mkdir -p sets u+wx bits regardless of umask, which
-           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-           ;;
-         *)
-           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-           if (umask $mkdir_umask &&
-               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-           then
-             if test -z "$dir_arg" || {
-                  # Check for POSIX incompatibilities with -m.
-                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                  # other-writable bit of parent directory when it shouldn't.
-                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
-                  case $ls_ld_tmpdir in
-                    d????-?r-*) different_mode=700;;
-                    d????-?--*) different_mode=755;;
-                    *) false;;
-                  esac &&
-                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                  }
-                }
-             then posix_mkdir=:
-             fi
-             rmdir "$tmpdir/d" "$tmpdir"
-           else
-             # Remove any dirs left behind by ancient mkdir implementations.
-             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-           fi
-           trap '' 0;;
-       esac;;
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+            then
+              if test -z "$dir_arg" || {
+                   # Check for POSIX incompatibilities with -m.
+                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                   # other-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
     esac
 
     if
       $posix_mkdir && (
-       umask $mkdir_umask &&
-       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -391,53 +370,51 @@
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-       /*) prefix='/';;
-       [-=\(\)!]*) prefix='./';;
-       *)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-       test X"$d" = X && continue
+        test X"$d" = X && continue
 
-       prefix=$prefix$d
-       if test -d "$prefix"; then
-         prefixes=
-       else
-         if $posix_mkdir; then
-           (umask=$mkdir_umask &&
-            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-           # Don't fail if two instances are running concurrently.
-           test -d "$prefix" || exit 1
-         else
-           case $prefix in
-             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-             *) qprefix=$prefix;;
-           esac
-           prefixes="$prefixes '$qprefix'"
-         fi
-       fi
-       prefix=$prefix/
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-       # Don't fail if two instances are running concurrently.
-       (umask $mkdir_umask &&
-        eval "\$doit_exec \$mkdirprog $prefixes") ||
-         test -d "$dstdir" || exit 1
-       obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -472,15 +449,12 @@
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
+       set +f &&
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -493,24 +467,24 @@
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-       # Now remove or move aside any old file at destination location.
-       # We try this two ways since rm can't unlink itself on some
-       # systems and the destination file might be busy for other
-       # reasons.  In this case, the final cleanup might fail but the new
-       # file should still install successfully.
-       {
-         test ! -f "$dst" ||
-         $doit $rmcmd -f "$dst" 2>/dev/null ||
-         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-         } ||
-         { echo "$0: cannot unlink or rename $dst" >&2
-           (exit 1); exit 1
-         }
-       } &&
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
 
-       # Now rename the file to the real destination.
-       $doit $mvcmd "$dsttmp" "$dst"
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/man/evdev.man 
new/xf86-input-evdev-2.10.5/man/evdev.man
--- old/xf86-input-evdev-2.10.4/man/evdev.man   2016-05-12 07:28:14.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/man/evdev.man   2016-11-21 05:59:44.000000000 
+0100
@@ -94,6 +94,11 @@
 if two buttons where pressed "simultaneously" when 3 button emulation is
 enabled.  Default: 50. Property: "Evdev Middle Button Timeout".
 .TP 7
+.BI "Option \*qEmulate3Button\*q \*q" integer \*q
+Specifies the physical button number to be emitted if middle button emulation
+is triggered.
+Default: 2.  Property: "Evdev Middle Button Button".
+.TP 7
 .BI "Option \*qEmulateWheel\*q \*q" boolean \*q
 Enable/disable "wheel" emulation.  Wheel emulation means emulating button
 press/release events when the mouse is moved while a specific real button
@@ -283,6 +288,9 @@
 .BI "Evdev Middle Button Timeout"
 1 16-bit positive value.
 .TP 7
+.BI "Evdev Middle Button Button"
+1 8-bit value, allowed range 0-32, 0 disables the button.
+.TP 7
 .BI "Evdev Wheel Emulation"
 1 boolean value (8 bit, 0 or 1).
 .TP 7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/missing 
new/xf86-input-evdev-2.10.5/missing
--- old/xf86-input-evdev-2.10.4/missing 2014-11-26 00:23:52.000000000 +0100
+++ new/xf86-input-evdev-2.10.5/missing 2017-01-18 04:15:30.000000000 +0100
@@ -3,7 +3,7 @@
 
 scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/src/emuMB.c 
new/xf86-input-evdev-2.10.5/src/emuMB.c
--- old/xf86-input-evdev-2.10.4/src/emuMB.c     2016-09-06 05:51:21.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/src/emuMB.c     2016-11-21 05:59:44.000000000 
+0100
@@ -45,6 +45,7 @@
 
 static Atom prop_mbemu     = 0; /* Middle button emulation on/off property */
 static Atom prop_mbtimeout = 0; /* Middle button timeout property */
+static Atom prop_mbbuton   = 0; /* Middle button target button property */
 /*
  * Lets create a simple finite-state machine for 3 button emulation:
  *
@@ -185,6 +186,7 @@
 {
     EvdevPtr pEvdev = pInfo->private;
     int id;
+    int mapped_id;
 
 #if HAVE_THREADED_INPUT
     input_lock();
@@ -194,7 +196,10 @@
 
     pEvdev->emulateMB.pending = FALSE;
     if ((id = stateTab[pEvdev->emulateMB.state][4][0]) != 0) {
-        EvdevPostButtonEvent(pInfo, abs(id),
+        mapped_id = abs(id);
+        if (mapped_id == 2)
+            mapped_id = pEvdev->emulateMB.button;
+        EvdevPostButtonEvent(pInfo, mapped_id,
                              (id >= 0) ? BUTTON_PRESS : BUTTON_RELEASE);
         pEvdev->emulateMB.state =
             stateTab[pEvdev->emulateMB.state][4][2];
@@ -226,6 +231,7 @@
 {
     EvdevPtr pEvdev = pInfo->private;
     int id;
+    int mapped_id;
     int *btstate;
     int ret = FALSE;
 
@@ -244,7 +250,10 @@
 
     if ((id = stateTab[pEvdev->emulateMB.state][*btstate][0]) != 0)
     {
-        EvdevQueueButtonEvent(pInfo, abs(id), (id >= 0));
+        mapped_id = abs(id);
+        if (mapped_id == 2)
+            mapped_id = pEvdev->emulateMB.button;
+        EvdevQueueButtonEvent(pInfo, mapped_id, (id >= 0));
         ret = TRUE;
     }
     if ((id = stateTab[pEvdev->emulateMB.state][*btstate][1]) != 0)
@@ -301,12 +310,23 @@
 EvdevMBEmuPreInit(InputInfoPtr pInfo)
 {
     EvdevPtr pEvdev = (EvdevPtr)pInfo->private;
+    int bt;
 
     pEvdev->emulateMB.enabled = xf86SetBoolOption(pInfo->options,
                                                   "Emulate3Buttons",
                                                   FALSE);
     pEvdev->emulateMB.timeout = xf86SetIntOption(pInfo->options,
                                                  "Emulate3Timeout", 50);
+    bt = xf86SetIntOption(pInfo->options, "Emulate3Button", 2);
+    if (bt < 0 || bt > EVDEV_MAXBUTTONS) {
+        xf86IDrvMsg(pInfo, X_WARNING, "Invalid Emulate3Button value: %d\n",
+                    bt);
+        xf86IDrvMsg(pInfo, X_WARNING, "Middle button emulation disabled.\n");
+
+        pEvdev->emulateMB.enabled = FALSE;
+    }
+
+    pEvdev->emulateMB.button = bt;
 }
 
 void
@@ -338,6 +358,7 @@
 {
     InputInfoPtr pInfo  = dev->public.devicePrivate;
     EvdevPtr     pEvdev = pInfo->private;
+    int bt;
 
     if (atom == prop_mbemu)
     {
@@ -353,6 +374,18 @@
 
         if (!checkonly)
             pEvdev->emulateMB.timeout = *((CARD32*)val->data);
+    } else if (atom == prop_mbbuton)
+    {
+        if (val->format != 8 || val->size != 1 || val->type != XA_INTEGER)
+            return BadMatch;
+
+        bt = *((CARD8*)val->data);
+
+        if (bt < 0 || bt > EVDEV_MAXBUTTONS)
+            return BadValue;
+
+        if (!checkonly)
+            pEvdev->emulateMB.button = bt;
     }
 
     return Success;
@@ -390,5 +423,15 @@
         return;
     XISetDevicePropertyDeletable(dev, prop_mbtimeout, FALSE);
 
+    prop_mbbuton = MakeAtom(EVDEV_PROP_MIDBUTTON_BUTTON,
+                              strlen(EVDEV_PROP_MIDBUTTON_BUTTON),
+                              TRUE);
+    rc = XIChangeDeviceProperty(dev, prop_mbbuton, XA_INTEGER, 8, 
PropModeReplace, 1,
+                                &pEvdev->emulateMB.button, FALSE);
+
+    if (rc != Success)
+        return;
+    XISetDevicePropertyDeletable(dev, prop_mbbuton, FALSE);
+
     XIRegisterPropertyHandler(dev, EvdevMBEmuSetProperty, NULL, NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/src/evdev.c 
new/xf86-input-evdev-2.10.5/src/evdev.c
--- old/xf86-input-evdev-2.10.4/src/evdev.c     2016-06-02 01:41:25.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/src/evdev.c     2017-01-03 02:26:00.000000000 
+0100
@@ -784,7 +784,6 @@
 
     if (ev->code >= ABS_MT_SLOT) {
         EvdevProcessTouchEvent(pInfo, ev);
-        pEvdev->abs_queued = 1;
     } else if (!pEvdev->mt_mask) {
         map = pEvdev->abs_axis_map[ev->code];
 
@@ -1238,7 +1237,7 @@
         return;
 
     /* Absolute multitouch axes: adjust mapping and axes counts. */
-    for (axis = ABS_MT_SLOT; axis < ABS_MAX; axis++)
+    for (axis = ABS_MT_SLOT; axis <= ABS_MAX; axis++)
     {
         int j;
         Bool skip = FALSE;
@@ -1288,7 +1287,7 @@
         goto out;
 
     /* Find number of absolute axis, including MT ones, will decrease later. */
-    for (i = 0; i < ABS_MAX; i++)
+    for (i = 0; i <= ABS_MAX; i++)
         if (libevdev_has_event_code(pEvdev->dev, EV_ABS, i))
             num_axes++;
 
@@ -1456,7 +1455,7 @@
         }
 
         for (i = 0; i < num_touches; i++) {
-            for (axis = ABS_MT_TOUCH_MAJOR; axis < ABS_MAX; axis++) {
+            for (axis = ABS_MT_TOUCH_MAJOR; axis <= ABS_MAX; axis++) {
                 if (pEvdev->abs_axis_map[axis] >= 0) {
                     int val = pEvdev->mtdev ? 0 : 
libevdev_get_current_slot(pEvdev->dev);
                     /* XXX: read initial values from mtdev when it adds support
@@ -1669,7 +1668,7 @@
     if (!libevdev_has_event_type(pEvdev->dev, EV_REL))
         goto out;
 
-    for (i = 0; i < REL_MAX; i++) {
+    for (i = 0; i <= REL_MAX; i++) {
         if (i == REL_WHEEL || i == REL_HWHEEL || i == REL_DIAL)
             continue;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.10.4/src/evdev.h 
new/xf86-input-evdev-2.10.5/src/evdev.h
--- old/xf86-input-evdev-2.10.4/src/evdev.h     2016-09-06 05:51:21.000000000 
+0200
+++ new/xf86-input-evdev-2.10.5/src/evdev.h     2016-11-21 05:59:44.000000000 
+0100
@@ -196,6 +196,7 @@
         int                 state;       /* state machine (see bt3emu.c) */
         Time                expires;     /* time of expiry */
         Time                timeout;
+        uint8_t             button;      /* phys button to emit */
     } emulateMB;
     /* Third mouse button emulation */
     struct emulate3B {



Reply via email to