[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-input-libinput: Changes to 'debian-unstable'



 conf/40-libinput.conf |    7 +
 configure.ac          |    2 
 debian/changelog      |   11 ++
 debian/compat         |    2 
 debian/control        |    3 
 debian/rules          |    8 --
 man/libinput.man      |  184 +++++++++++++++++++++++++-------------------------
 src/xf86libinput.c    |  133 ++++++++++++++++++++++--------------
 8 files changed, 198 insertions(+), 152 deletions(-)

New commits:
commit 7db08cbba7dc95ed691a96a7862ed74e64d789b5
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:15:46 2016 +0100

    Release to unstable

diff --git a/debian/changelog b/debian/changelog
index 56e81fb..a17b40c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
+xserver-xorg-input-libinput (0.23.0-1) unstable; urgency=medium
 
   * New upstream release.
   * Bump debhelper compat to 10.
@@ -7,7 +7,7 @@ xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
     that these days.
   * No need for --destdir=debian/tmp as we have multiple binary packages.
 
- -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:09:05 +0100
+ -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:15:41 +0100
 
 xserver-xorg-input-libinput (0.22.0-1) unstable; urgency=medium
 

commit 3451290f6d89bbc5f5b30711550266d64683c763
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:14:04 2016 +0100

    Let debhelper specify the destdir

diff --git a/debian/changelog b/debian/changelog
index d2d4dc8..56e81fb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
     + Let debhelper run autoreconf for us.
   * No need to pass --disable-silent-rules to configure, debhelper does
     that these days.
+  * No need for --destdir=debian/tmp as we have multiple binary packages.
 
  -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:09:05 +0100
 
diff --git a/debian/rules b/debian/rules
index 4891efa..7aa35b3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,10 +4,6 @@ override_dh_auto_configure:
 	dh_auto_configure -- \
 		--libdir=\$${exec_prefix}/lib
 
-# Install in debian/tmp to retain control through dh_install:
-override_dh_auto_install:
-	dh_auto_install --destdir=debian/tmp
-
 # Kill *.la files, and forget no-one:
 override_dh_install:
 	find debian/tmp -name '*.la' -delete

commit 4461d2e0f10faf7a8a71e3d1c708c696274495b6
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:13:12 2016 +0100

    debhelper runs autoreconf for us

diff --git a/debian/changelog b/debian/changelog
index 0251d40..d2d4dc8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * Bump debhelper compat to 10.
+    + Let debhelper run autoreconf for us.
   * No need to pass --disable-silent-rules to configure, debhelper does
     that these days.
 
diff --git a/debian/control b/debian/control
index 6ff2591..d7aded2 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,6 @@ Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Timo Aaltonen <tjaalton@debian.org>,
 Build-Depends:
  debhelper (>= 10),
- dh-autoreconf,
  libinput-dev (>= 1.4.901),
  libudev-dev,
  pkg-config,
diff --git a/debian/rules b/debian/rules
index 1b4e79b..4891efa 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,4 +18,4 @@ override_dh_shlibdeps:
 	dh_shlibdeps -- --warnings=6
 
 %:
-	dh $@ --with quilt,autoreconf,xsf --builddirectory=build/
+	dh $@ --with quilt,xsf --builddirectory=build/

commit 82544f7d606ad0e5bc5b61938a888c32ea286a93
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:11:58 2016 +0100

    Let debhelper disable silent rules

diff --git a/debian/changelog b/debian/changelog
index 8c5f5ae..0251d40 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * Bump debhelper compat to 10.
+  * No need to pass --disable-silent-rules to configure, debhelper does
+    that these days.
 
  -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:09:05 +0100
 
diff --git a/debian/rules b/debian/rules
index d19a5b2..1b4e79b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,7 +1,7 @@
 #!/usr/bin/make -f
 
 override_dh_auto_configure:
-	dh_auto_configure -- --disable-silent-rules \
+	dh_auto_configure -- \
 		--libdir=\$${exec_prefix}/lib
 
 # Install in debian/tmp to retain control through dh_install:

commit 7a974305feba7699965cbc1a724a5c7393b52146
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:10:46 2016 +0100

    Bump debhelper compat to 10

diff --git a/debian/changelog b/debian/changelog
index bc137d4..8c5f5ae 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * Bump debhelper compat to 10.
 
  -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:09:05 +0100
 
diff --git a/debian/compat b/debian/compat
index ec63514..f599e28 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index a5eee51..6ff2591 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Timo Aaltonen <tjaalton@debian.org>,
 Build-Depends:
- debhelper (>= 9),
+ debhelper (>= 10),
  dh-autoreconf,
  libinput-dev (>= 1.4.901),
  libudev-dev,

commit 5f8002492510bc2f28bcc03f79d48fc8ca7f7d9f
Author: Emilio Pozuelo Monfort <pochu@debian.org>
Date:   Mon Dec 12 19:10:16 2016 +0100

    New upstream release

diff --git a/debian/changelog b/debian/changelog
index 59aa9ca..bc137d4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-libinput (0.23.0-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 12 Dec 2016 19:09:05 +0100
+
 xserver-xorg-input-libinput (0.22.0-1) unstable; urgency=medium
 
   * New upstream release.

commit 1c3ce3ce3c315213511735db1b0fdd74ca8442d0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 12 14:54:00 2016 +1000

    xf86-input-libinput 0.23.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 9894817..7a1918b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-libinput],
-        [0.22.0],
+        [0.23.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-libinput])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 4d481ea7c80dad9f53b47c026959c25ad9da5211
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 5 14:25:31 2016 +1000

    Fix default scroll button number
    
    Was exposing the evdev code rather than the xorg code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 747e84b..b130a77 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -4386,6 +4386,7 @@ LibinputInitScrollMethodsProperty(DeviceIntPtr dev,
 			return;
 
 		scroll_button = libinput_device_config_scroll_get_default_button(device);
+		scroll_button = btn_linux2xorg(scroll_button);
 		prop_scroll_button_default = LibinputMakeProperty(dev,
 								  LIBINPUT_PROP_SCROLL_BUTTON_DEFAULT,
 								  XA_CARDINAL, 32,

commit 72bac84df9ce72f2baf730655ecc23f1692d1e64
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 15 11:23:08 2016 +1000

    If the parent libinput_device is unavailable, create a new one
    
    The parent device ref's the libinput device during pre_init and unref's it
    during DEVICE_INIT, so the copy is lost. During DEVICE_ON, the libinput device
    is re-added and ref'd, this one stays around now. But the takeaway is: unless
    the device is enabled, no libinput device reference is available.
    
    If a device is a mixed pointer + keyboard device, a subdevice is created
    during a WorkProc. The subdevice relied on the parent's libinput_device being
    available and didn't even check for it. This WorkProc usually runs after
    the parent's DEVICE_ON, so in most cases all is well.
    
    But when running without logind and the server is vt-switched away, the parent
    device only runs PreInit and DEVICE_INIT but never DEVICE_ON, causing the
    subdevice to burn, crash, and generally fail horribly when it dereferences the
    parent's libinput device.
    
    Fix this because we have global warming already and don't need to burn more
    things and also because it's considered bad user experience to have the
    server crash. The simple fix is to check the parent device first and if it is
    unavailable, create a new one because it will end up disabled as well anyway,
    so the ref goes away as well. The use-case where the parent somehow gets
    disabled but the subdevice doesn't is a bit too niche to worry about.
    
    This doesn't happen with logind because in that case we don't get a usable fd
    while VT-switched away, so we can't even run PreInit and never get this far
    (see the paused fd handling in the xfree86 code for that). It can be
    reproduced by setting AutoEnableDevices off, but why would you do that,
    seriously.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=97117
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 6792d1c..747e84b 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -2850,7 +2850,7 @@ xf86libinput_pre_init(InputDriverPtr drv,
 	struct xf86libinput *driver_data = NULL;
 	struct xf86libinput_device *shared_device = NULL;
 	struct libinput *libinput = NULL;
-	struct libinput_device *device;
+	struct libinput_device *device = NULL;
 	char *path = NULL;
 	bool is_subdevice;
 
@@ -2885,7 +2885,28 @@ xf86libinput_pre_init(InputDriverPtr drv,
 	}
 
 	is_subdevice = xf86libinput_is_subdevice(pInfo);
-	if (!is_subdevice) {
+	if (is_subdevice) {
+		InputInfoPtr parent;
+		struct xf86libinput *parent_driver_data;
+
+		parent = xf86libinput_get_parent(pInfo);
+		if (!parent) {
+			xf86IDrvMsg(pInfo, X_ERROR, "Failed to find parent device\n");
+			goto fail;
+		}
+
+		parent_driver_data = parent->private;
+		if (!parent_driver_data) /* parent already removed again */
+			goto fail;
+
+		xf86IDrvMsg(pInfo, X_INFO, "is a virtual subdevice\n");
+		shared_device = xf86libinput_shared_ref(parent_driver_data->shared_device);
+		device = shared_device->device;
+		if (!device)
+			xf86IDrvMsg(pInfo, X_ERROR, "Parent device not available\n");
+	}
+
+	if (!device) {
 		device = libinput_path_add_device(libinput, path);
 		if (!device) {
 			xf86IDrvMsg(pInfo, X_ERROR, "Failed to create a device for %s\n", path);
@@ -2903,23 +2924,6 @@ xf86libinput_pre_init(InputDriverPtr drv,
 			libinput_device_unref(device);
 			goto fail;
 		}
-	} else {
-		InputInfoPtr parent;
-		struct xf86libinput *parent_driver_data;
-
-		parent = xf86libinput_get_parent(pInfo);
-		if (!parent) {
-			xf86IDrvMsg(pInfo, X_ERROR, "Failed to find parent device\n");
-			goto fail;
-		}
-
-		parent_driver_data = parent->private;
-		if (!parent_driver_data) /* parent already removed again */
-			goto fail;
-
-		xf86IDrvMsg(pInfo, X_INFO, "is a virtual subdevice\n");
-		shared_device = xf86libinput_shared_ref(parent_driver_data->shared_device);
-		device = shared_device->device;
 	}
 
 	pInfo->private = driver_data;

commit 0b073d90e63d644401769c61611638d65a4eaf44
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 11 12:36:01 2016 +1000

    Link the left-handed property between the tools
    
    The property is tablet-wide, not just per tool. So when one tool is updated,
    run through all other devices that share the same underlying device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index a6481bc..6792d1c 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -3494,7 +3494,28 @@ LibinputSetPropertyLeftHanded(DeviceIntPtr dev,
 		if (!supported && left_handed)
 			return BadValue;
 	} else {
+		struct xf86libinput *other;
+
 		driver_data->options.left_handed = *data;
+
+		xorg_list_for_each_entry(other,
+					 &driver_data->shared_device->device_list,
+					 shared_device_link) {
+			DeviceIntPtr other_device = other->pInfo->dev;
+
+			if (other->options.left_handed == *data)
+				continue;
+
+			XIChangeDeviceProperty(other_device,
+					       atom,
+					       val->type,
+					       val->format,
+					       PropModeReplace,
+					       val->size,
+					       val->data,
+					       TRUE);
+		}
+
 	}
 
 	return Success;

commit 669fbb098516e0bdf6c62c52c1bcb12580de069b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 1 10:42:19 2016 +1000

    Drop indentation for matrix handling
    
    Exit early if the string is NULL to reduce indentation. No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 07b4d4e..a6481bc 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -2331,6 +2331,7 @@ xf86libinput_parse_calibration_option(InputInfoPtr pInfo,
 {
 	char *str;
 	float matrix[9] = { 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0};
+	int num_calibration;
 
 	memcpy(matrix_out, matrix, sizeof(matrix));
 
@@ -2340,27 +2341,29 @@ xf86libinput_parse_calibration_option(InputInfoPtr pInfo,
 	libinput_device_config_calibration_get_matrix(device, matrix);
 	memcpy(matrix_out, matrix, sizeof(matrix));
 
-	if ((str = xf86CheckStrOption(pInfo->options,
-				      "CalibrationMatrix",
-				      NULL))) {
-		int num_calibration = sscanf(str, "%f %f %f %f %f %f %f %f %f ",
-					     &matrix[0], &matrix[1],
-					     &matrix[2], &matrix[3],
-					     &matrix[4], &matrix[5],
-					     &matrix[6], &matrix[7],
-					     &matrix[8]);
-		if (num_calibration != 9) {
-			xf86IDrvMsg(pInfo, X_ERROR,
-				    "Invalid matrix: %s, using default\n",  str);
-		} else if (libinput_device_config_calibration_set_matrix(device,
-									 matrix) ==
-			   LIBINPUT_CONFIG_STATUS_SUCCESS) {
-			memcpy(matrix_out, matrix, sizeof(matrix));
-		} else
-			xf86IDrvMsg(pInfo, X_ERROR,
-				    "Failed to apply matrix: %s, using default\n",  str);
-		free(str);
-	}
+	str = xf86CheckStrOption(pInfo->options,
+				 "CalibrationMatrix",
+				 NULL);
+	if (!str)
+		return;
+
+	num_calibration = sscanf(str, "%f %f %f %f %f %f %f %f %f ",
+				 &matrix[0], &matrix[1],
+				 &matrix[2], &matrix[3],
+				 &matrix[4], &matrix[5],
+				 &matrix[6], &matrix[7],
+				 &matrix[8]);
+	if (num_calibration != 9) {
+		xf86IDrvMsg(pInfo, X_ERROR,
+			    "Invalid matrix: %s, using default\n",  str);
+	} else if (libinput_device_config_calibration_set_matrix(device,
+								 matrix) ==
+		   LIBINPUT_CONFIG_STATUS_SUCCESS) {
+		memcpy(matrix_out, matrix, sizeof(matrix));
+	} else
+		xf86IDrvMsg(pInfo, X_ERROR,
+			    "Failed to apply matrix: %s, using default\n",  str);
+	free(str);
 }
 
 static inline BOOL

commit c4f0a9bcb846f70b85a285e8acea8fe086abdccb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 1 10:06:03 2016 +1000

    conf: match against tablets too
    
    Now that we sort below the xf86-input-wacom driver anyway, there's no good
    reason to ignore tablets anymore.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/conf/40-libinput.conf b/conf/40-libinput.conf
index 97afd07..7b7162e 100644
--- a/conf/40-libinput.conf
+++ b/conf/40-libinput.conf
@@ -26,3 +26,10 @@ Section "InputClass"
         MatchDevicePath "/dev/input/event*"
         Driver "libinput"
 EndSection
+
+Section "InputClass"
+        Identifier "libinput tablet catchall"
+        MatchIsTablet "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "libinput"
+EndSection

commit a61e156326197dbbf1c1294693946c504af9daee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 24 14:23:16 2016 +1000

    man: sort the options and properties alphabetically
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/man/libinput.man b/man/libinput.man
index 92e181e..36775e6 100644
--- a/man/libinput.man
+++ b/man/libinput.man
@@ -41,15 +41,6 @@ The following driver
 .B Options
 are supported:
 .TP 7
-.BI "Option \*qDevice\*q \*q" string \*q
-Specifies the device through which the device can be accessed.  This will 
-generally be of the form \*q/dev/input/eventX\*q, where X is some integer.
-When using
-.B InputClass
-directives, this option is set by the server.
-The mapping from device node to hardware is system-dependent. Property:
-"Device Node" (read-only).
-.TP 7
 .BI "Option \*qAccelProfile\*q \*q" string \*q
 Sets the pointer acceleration profile to the given profile. Permitted values
 are
@@ -89,6 +80,46 @@ Enables a click method. Permitted values are
 Not all devices support all methods, if an option is unsupported, the
 default click method for this device is used.
 .TP 7
+.BI "Option \*qDisableWhileTyping\*q \*q" bool \*q
+Indicates if the touchpad should be disabled while typing on the keyboard
+(this does not apply to modifier keys such as Ctrl or Alt).
+.TP 7
+.BI "Option \*qDevice\*q \*q" string \*q
+Specifies the device through which the device can be accessed.  This will
+generally be of the form \*q/dev/input/eventX\*q, where X is some integer.
+When using
+.B InputClass
+directives, this option is set by the server.
+The mapping from device node to hardware is system-dependent. Property:
+"Device Node" (read-only).
+.TP 7
+.BI "Option \*qDragLockButtons\*q \*q" "L1 B1 L2 B2 ..." \*q
+Sets "drag lock buttons" that simulate a button logically down even when it has
+been physically released. To logically release a locked button, a second click
+of the same button is required.
+.IP
+If the option is a single button number, that button acts as the
+"meta" locking button for the next button number. See section
+.B BUTTON DRAG LOCK
+for details.
+.IP
+If the option is a list of button number pairs, the first number of each
+number pair is the lock button, the second number the logical button number
+to be locked. See section
+.B BUTTON DRAG LOCK
+for details.
+.IP
+For both meta and button pair configuration, the button numbers are
+device button numbers, i.e. the
+.B ButtonMapping
+applies after drag lock.
+.TP 7
+.BI "Option \*qHorizontalScrolling\*q \*q" bool \*q
+Disables horizontal scrolling. When disabled, this driver will discard any
+horizontal scroll events from libinput. Note that this does not disable
+horizontal scrolling, it merely discards the horizontal axis from any scroll
+events.
+.TP 7
 .BI "Option \*qLeftHanded\*q \*q" bool \*q
 Enables left-handed button orientation, i.e. swapping left and right buttons.
 .TP 7
@@ -99,6 +130,10 @@ buttons simultaneously produces a middle mouse button click.
 .BI "Option \*qNaturalScrolling\*q \*q" bool \*q
 Enables or disables natural scrolling behavior.
 .TP 7
+.BI "Option \*qRotationAngle\*q \*q" float \*q
+Sets the rotation angle of the device to the given angle, in degrees
+clockwise. The angle must be between 0.0 (inclusive) and 360.0 (exclusive).
+.TP 7
 .BI "Option \*qScrollButton\*q \*q" int \*q
 Designates a button as scroll button. If the
 .BI ScrollMethod
@@ -116,20 +151,10 @@ Enables a scroll method. Permitted values are
 Not all devices support all options, if an option is unsupported, the
 default scroll option for this device is used.
 .TP 7
-.BI "Option \*qHorizontalScrolling\*q \*q" bool \*q
-Disables horizontal scrolling. When disabled, this driver will discard any
-horizontal scroll events from libinput. Note that this does not disable
-horizontal scrolling, it merely discards the horizontal axis from any scroll
-events.
-.TP 7
 .BI "Option \*qSendEventsMode\*q \*q" (disabled|enabled|disabled-on-external-mouse) \*q
 Sets the send events mode to disabled, enabled, or "disable when an external
 mouse is connected".
 .TP 7
-.BI "Option \*qRotationAngle\*q \*q" float \*q
-Sets the rotation angle of the device to the given angle, in degrees
-clockwise. The angle must be between 0.0 (inclusive) and 360.0 (exclusive).
-.TP 7
 .BI "Option \*qTapping\*q \*q" bool \*q
 Enables or disables tap-to-click behavior.
 .TP 7
@@ -150,31 +175,6 @@ Enables or disables drag lock during tapping behavior. When enabled, a
 finger up during tap-and-drag will not immediately release the button. If
 the finger is set down again within the timeout, the dragging process
 continues.
-.TP 7
-.BI "Option \*qDisableWhileTyping\*q \*q" bool \*q
-Indicates if the touchpad should be disabled while typing on the keyboard
-(this does not apply to modifier keys such as Ctrl or Alt).
-.TP 7
-.BI "Option \*qDragLockButtons\*q \*q" "L1 B1 L2 B2 ..." \*q
-Sets "drag lock buttons" that simulate a button logically down even when it has
-been physically released. To logically release a locked button, a second click
-of the same button is required.
-.IP
-If the option is a single button number, that button acts as the
-"meta" locking button for the next button number. See section
-.B BUTTON DRAG LOCK
-for details.
-.IP
-If the option is a list of button number pairs, the first number of each
-number pair is the lock button, the second number the logical button number
-to be locked. See section
-.B BUTTON DRAG LOCK
-for details.
-.IP
-For both meta and button pair configuration, the button numbers are
-device button numbers, i.e. the
-.B ButtonMapping
-applies after drag lock.
 .PP
 For all options, the options are only parsed if the device supports that
 configuration option. For all options, the default value is the one used by
@@ -189,40 +189,51 @@ on the device. The following properties are provided by the
 .B libinput
 driver.
 .TP 7
-.BI "libinput Tapping Enabled"
-1 boolean value (8 bit, 0 or 1). 1 enables tapping
-.TP 7
-.BI "libinput Tapping Button Mapping Enabled"
-2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr". Indicates which
-button mapping is currently enabled on this device.
+.BI "libinput Accel Speed"
+1 32-bit float value, defines the pointer speed. Value range -1, 1
 .TP 7
-.BI "libinput Tapping Drag Lock Enabled"
-1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tapping
+.BI "libinput Button Scrolling Button"
+1 32-bit value. Sets the button number to use for button scrolling. This
+setting is independent of the scroll method, to enable button scrolling the
+method must be set to button-scrolling and a valid button must be set.
 .TP 7
 .BI "libinput Calibration Matrix"
 9 32-bit float values, representing a 3x3 calibration matrix, order is row
 1, row 2, row 3
 .TP 7
-.BI "libinput Accel Speed"
-1 32-bit float value, defines the pointer speed. Value range -1, 1
+.BI "libinput Click Methods Available"
+2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
+Indicates which click methods are available on this device.
 .TP 7
-.BI "libinput Natural Scrolling Enabled"
-1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling
+.BI "libinput Click Methods Enabled"
+2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
+Indicates which click methods are enabled on this device.
 .TP 7
-.BI "libinput Send Events Modes Available"
-2 boolean values (8 bit, 0 or 1), in order "disabled" and
-"disabled-on-external-mouse". Indicates which send-event modes are available
-on this device.
+.BI "libinput Drag Lock Buttons"
+Either one 8-bit value specifying the meta drag lock button, or a list of
+button pairs. See section
+.B BUTTON DRAG LOCK
+for details.
 .TP 7
-.BI "libinput Send Events Mode Enabled"
-2 boolean values (8 bit, 0 or 1), in order "disabled" and
-"disabled-on-external-mouse". Indicates which send-event modes is currently
-enabled on this device.
+.BI "libinput Horizontal Scrolling Enabled"
+1 boolean value (8 bit, 0 or 1). Indicates whether horizontal scrolling
+events are enabled or not.
 .TP 7
 .BI "libinput Left Handed Enabled"
 1 boolean value (8 bit, 0 or 1). Indicates if left-handed mode is enabled or
 disabled.
 .TP 7
+.BI "libinput Middle Emulation Enabled"
+1 boolean value (8 bit, 0 or 1). Indicates if middle emulation is enabled or
+disabled.
+.TP 7
+.BI "libinput Natural Scrolling Enabled"
+1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling
+.TP 7
+.BI "libinput Rotation Angle"
+1 32-bit float value [0.0 to 360.0). Sets the rotation angle of the device,
+clockwise of its natural neutral position.
+.TP 7
 .BI "libinput Scroll Methods Available"
 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge", "button".
 Indicates which scroll methods are available on this device.
@@ -231,44 +242,33 @@ Indicates which scroll methods are available on this device.
 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge", "button".
 Indicates which scroll method is currently enabled on this device.
 .TP 7
-.BI "libinput Button Scrolling Button"
-1 32-bit value. Sets the button number to use for button scrolling. This
-setting is independent of the scroll method, to enable button scrolling the
-method must be set to button-scrolling and a valid button must be set.
+.BI "libinput Send Events Modes Available"
+2 boolean values (8 bit, 0 or 1), in order "disabled" and
+"disabled-on-external-mouse". Indicates which send-event modes are available
+on this device.
 .TP 7
-.BI "libinput Click Methods Available"
-2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
-Indicates which click methods are available on this device.
+.BI "libinput Send Events Mode Enabled"
+2 boolean values (8 bit, 0 or 1), in order "disabled" and
+"disabled-on-external-mouse". Indicates which send-event modes is currently
+enabled on this device.
 .TP 7
-.BI "libinput Click Methods Enabled"
-2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
-Indicates which click methods are enabled on this device.
+.BI "libinput Tapping Enabled"
+1 boolean value (8 bit, 0 or 1). 1 enables tapping
 .TP 7
-.BI "libinput Middle Emulation Enabled"
-1 boolean value (8 bit, 0 or 1). Indicates if middle emulation is enabled or
-disabled.
+.BI "libinput Tapping Button Mapping Enabled"
+2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr". Indicates which
+button mapping is currently enabled on this device.
+.TP 7
+.BI "libinput Tapping Drag Lock Enabled"
+1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tapping
 .TP 7
 .BI "libinput Disable While Typing Enabled"
 1 boolean value (8 bit, 0 or 1). Indicates if disable while typing is
 enabled or disabled.
-.TP 7
-.BI "libinput Rotation Angle"
-1 32-bit float value [0.0 to 360.0). Sets the rotation angle of the device,
-clockwise of its natural neutral position.
 .PP
-The above properties have a
+Most properties have a
 .BI "libinput <property name> Default"
 equivalent that indicates the default value for this setting on this device.
-.TP 7
-.BI "libinput Drag Lock Buttons"
-Either one 8-bit value specifying the meta drag lock button, or a list of
-button pairs. See section
-.B BUTTON DRAG LOCK
-for details.
-.TP 7
-.BI "libinput Horizontal Scrolling Enabled"
-1 boolean value (8 bit, 0 or 1). Indicates whether horizontal scrolling
-events are enabled or not.
 
 .SH BUTTON MAPPING
 X clients receive events with logical button numbers, where 1, 2, 3

commit 552cbaf466a0aede8f789aa2013795f3b9ac253d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 26 15:03:48 2016 +1000

    Don't init the AccelSpeed/LeftHanded properties on the base tablet device
    
    This device never sends events, no point in exposing these options
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 8ee6cbe..07b4d4e 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -4092,7 +4092,8 @@ LibinputInitAccelProperty(DeviceIntPtr dev,
 	enum libinput_config_accel_profile profile;
 	BOOL profiles[2] = {FALSE};
 
-	if (!libinput_device_config_accel_is_available(device))
+	if (!libinput_device_config_accel_is_available(device) ||
+	    driver_data->capabilities & CAP_TABLET)
 		return;
 
 	prop_accel = LibinputMakeProperty(dev,
@@ -4260,7 +4261,8 @@ LibinputInitLeftHandedProperty(DeviceIntPtr dev,
 {
 	BOOL left_handed = driver_data->options.left_handed;
 
-	if (!libinput_device_config_left_handed_is_available(device))
+	if (!libinput_device_config_left_handed_is_available(device) ||
+	    driver_data->capabilities & CAP_TABLET)
 		return;
 
 	prop_left_handed = LibinputMakeProperty(dev,

commit bc91d337d7cf765fd23e47783a498e4b3b334f39
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 20 08:42:53 2016 +1000

    Fix potential NULL pointer dereferencing
    
    Found by coverity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index a3260ae..8ee6cbe 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -2968,10 +2968,12 @@ xf86libinput_pre_init(InputDriverPtr drv,
 
 	return Success;
 fail:
-	if (driver_data->valuators)
-		valuator_mask_free(&driver_data->valuators);
-	if (driver_data->valuators_unaccelerated)
-		valuator_mask_free(&driver_data->valuators_unaccelerated);
+	if (driver_data) {
+		if (driver_data->valuators)
+			valuator_mask_free(&driver_data->valuators);
+		if (driver_data->valuators_unaccelerated)
+			valuator_mask_free(&driver_data->valuators_unaccelerated);
+	}
 	free(path);
 	if (shared_device)
 		xf86libinput_shared_unref(shared_device);

commit c8d2293873d3f86e5cefffa5c51cfe423d09c948
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 20 08:38:24 2016 +1000

    Remove superfluous check for next being NULL
    
    is_libinput_device(next) causes a dereference of next anyway, so this cannot
    ever be NULL.
    
    Besides, if next ends up as NULL that means we have lost count of how many
    remaining devices use libinput, so we have other issues.
    
    Found by coverity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 3ac0df3..a3260ae 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -1162,8 +1162,7 @@ swap_registered_device(InputInfoPtr pInfo)
 	int sigstate = xf86BlockSIGIO();
 #endif
 	xf86RemoveEnabledDevice(pInfo);
-	if (next) /* shouldn't ever be NULL anyway */
-		xf86AddEnabledDevice(next);
+	xf86AddEnabledDevice(next);
 	driver_context.registered_InputInfoPtr = next;
 #if HAVE_THREADED_INPUT
 	input_unlock();

commit a7014aa8c619ed9bc1cd5c0b38428fd88f1bc8d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 20 08:27:01 2016 +1000

    Remove two unused variables
    
    They were never used anyway
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 8646c6d..3ac0df3 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -126,8 +126,6 @@ struct xf86libinput {
 	struct {
 		int vdist;
 		int hdist;
-		int vdist_remainder;
-		int hdist_remainder;
 	} scroll;
 
 	struct {

commit bf7fffde520277e13b350950de9dc5bf89858951
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 19 11:42:57 2016 +1000

    Don't init the horiz scroll property on non-pointer devices
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 24219a6..8646c6d 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -4653,6 +4653,9 @@ LibinputInitHorizScrollProperty(DeviceIntPtr dev,
 {
 	BOOL enabled = driver_data->options.horiz_scrolling_enabled;
 
+	if ((driver_data->capabilities & CAP_POINTER) == 0)
+		return;
+
 	prop_horiz_scroll = LibinputMakeProperty(dev,
 						 LIBINPUT_PROP_HORIZ_SCROLL_ENABLED,
 						 XA_INTEGER, 8,


Reply to: