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

libinput: Changes to 'debian-unstable'



 Makefile.am                        |    2 +
 configure.ac                       |   44 +++++++++++++++++++++++++++----------
 debian/changelog                   |    7 +++++
 debian/control                     |    1 
 doc/libinput.doxygen.in            |    3 --
 src/evdev-mt-touchpad.c            |   20 ++++------------
 src/evdev.c                        |    6 +++++
 src/evdev.h                        |   39 ++++++++++++++++++++++++++++++--
 test/Makefile.am                   |    3 ++
 test/litest.c                      |   28 +++++++++++++++++------
 test/touchpad-tap.c                |   10 ++++----
 test/touchpad.c                    |    4 +--
 udev/90-libinput-model-quirks.hwdb |    4 +++
 udev/Makefile.am                   |    3 +-
 14 files changed, 128 insertions(+), 46 deletions(-)

New commits:
commit 73ccb627e7cb73a1f46ec72b171073fc96a1c660
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Dec 2 10:07:49 2016 +0200

    release to sid

diff --git a/debian/changelog b/debian/changelog
index 4c62b96..4390058 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-libinput (1.5.2-1) UNRELEASED; urgency=medium
+libinput (1.5.2-1) unstable; urgency=medium
 
   * New upstream release.
   * control: Add libudev-dev to libinput-dev depends. (Closes: #846506)
 
- -- Timo Aaltonen <tjaalton@debian.org>  Fri, 02 Dec 2016 10:04:26 +0200
+ -- Timo Aaltonen <tjaalton@debian.org>  Fri, 02 Dec 2016 10:07:40 +0200
 
 libinput (1.5.1-1) unstable; urgency=medium
 

commit 41b4e3d54c21ccc4d7af40d9abccba453394c05f
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Dec 2 10:05:28 2016 +0200

    update changelog

diff --git a/debian/changelog b/debian/changelog
index b1ce2cb..4c62b96 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,6 @@
-libinput (1.5.1-2) UNRELEASED; urgency=medium
+libinput (1.5.2-1) UNRELEASED; urgency=medium
 
+  * New upstream release.
   * control: Add libudev-dev to libinput-dev depends. (Closes: #846506)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Fri, 02 Dec 2016 10:04:26 +0200

commit a84705d1e4bcf177d04430e83fa4c6c748b621d7
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Dec 2 10:04:28 2016 +0200

    control: Add libudev-dev to libinput-dev depends. (Closes: #846506)

diff --git a/debian/changelog b/debian/changelog
index 56b32ab..b1ce2cb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libinput (1.5.1-2) UNRELEASED; urgency=medium
+
+  * control: Add libudev-dev to libinput-dev depends. (Closes: #846506)
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Fri, 02 Dec 2016 10:04:26 +0200
+
 libinput (1.5.1-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/control b/debian/control
index 0acae76..b546bbe 100644
--- a/debian/control
+++ b/debian/control
@@ -70,6 +70,7 @@ Architecture: any
 Multi-Arch: same
 Depends:
  libinput10 (= ${binary:Version}),
+ libudev-dev,
  ${shlibs:Depends},
  ${misc:Depends},
 Description: input device management and event handling library - development files

commit a9dad56948083939ecc71c2e569889289cf8c6d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 25 11:02:13 2016 +1000

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

diff --git a/configure.ac b/configure.ac
index a70f4be..7c13a4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.64])
 
 m4_define([libinput_major_version], [1])
 m4_define([libinput_minor_version], [5])
-m4_define([libinput_micro_version], [1])
+m4_define([libinput_micro_version], [2])
 m4_define([libinput_version],
           [libinput_major_version.libinput_minor_version.libinput_micro_version])
 
@@ -35,7 +35,7 @@ AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
 # b) If interfaces have been changed or added, but binary compatibility has
 #    been preserved, change to C+1:0:A+1
 # c) If the interface is the same as the previous version, change to C:R+1:A
-LIBINPUT_LT_VERSION=20:2:10
+LIBINPUT_LT_VERSION=20:3:10
 AC_SUBST(LIBINPUT_LT_VERSION)
 
 AM_SILENT_RULES([yes])

commit cfdaaa32a73ba2f7b0379c2dbccabf120db8fc5e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 21 08:39:47 2016 +1000

    touchpad: only use the last two coordinates for delta calculation
    
    Taking the last 4 points means factoring in a coordinate that may be more than
    40ms in the past - or even more when the finger moves slowly and we don't get
    events for a while. This makes the pointer more sluggish and slower to catch up
    with what the finger is actually doing.
    
    We already have the motion hysteresis as a separate item to prevent jumps (and
    thus adds some delay to the movement), the calculation over time doesn't
    provide enough benefit to justify the sluggish pointer.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index d72cb19..7b8514c 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -262,29 +262,19 @@ tp_end_sequence(struct tp_dispatch *tp, struct tp_touch *t, uint64_t time)
 	tp_end_touch(tp, t, time);
 }
 
-static double
-tp_estimate_delta(int x0, int x1, int x2, int x3)
-{
-	return (x0 + x1 - x2 - x3) / 4.0;
-}
-
 struct normalized_coords
 tp_get_delta(struct tp_touch *t)
 {
 	struct device_float_coords delta;
 	const struct normalized_coords zero = { 0.0, 0.0 };
 
-	if (t->history.count < TOUCHPAD_MIN_SAMPLES)
+	if (t->history.count <= 1)
 		return zero;
 
-	delta.x = tp_estimate_delta(tp_motion_history_offset(t, 0)->x,
-				    tp_motion_history_offset(t, 1)->x,
-				    tp_motion_history_offset(t, 2)->x,
-				    tp_motion_history_offset(t, 3)->x);
-	delta.y = tp_estimate_delta(tp_motion_history_offset(t, 0)->y,
-				    tp_motion_history_offset(t, 1)->y,
-				    tp_motion_history_offset(t, 2)->y,
-				    tp_motion_history_offset(t, 3)->y);
+	delta.x = tp_motion_history_offset(t, 0)->x -
+		  tp_motion_history_offset(t, 1)->x;
+	delta.y = tp_motion_history_offset(t, 0)->y -
+		  tp_motion_history_offset(t, 1)->y;
 
 	return tp_normalize_delta(t->tp, delta);
 }

commit ab83c8e6267b9df5ab383e70e25e4d050a153601
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 23 10:38:45 2016 +1000

    doc: remove unnecessary linebreak in doxygen file
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/doc/libinput.doxygen.in b/doc/libinput.doxygen.in
index cd52972..6fde2c3 100644
--- a/doc/libinput.doxygen.in
+++ b/doc/libinput.doxygen.in
@@ -18,8 +18,7 @@ MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
 GENERATE_LATEX         = NO
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
-PREDEFINED             = LIBINPUT_ATTRIBUTE_PRINTF(f, \
-                         a)= \
+PREDEFINED             = LIBINPUT_ATTRIBUTE_PRINTF(f, a)= \
                          LIBINPUT_ATTRIBUTE_DEPRECATED
 DOTFILE_DIRS           = @top_srcdir@/doc/dot
 

commit 05faf7bf735893570fb4c218c0daa23285b59c37
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 21 12:24:45 2016 +1000

    evdev: simplify hysteresis code and document it
    
    center + diff is the input coordinate. Simplify the code so it's clear what
    we're returning. And document the function to explain what it does.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/evdev.h b/src/evdev.h
index 888cc28..0888600 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -530,6 +530,38 @@ evdev_to_left_handed(struct evdev_device *device,
 	return button;
 }
 
+/**
+ * Apply a hysteresis filtering to the coordinate in, based on the current
+ * hystersis center and the margin. If 'in' is within 'margin' of center,
+ * return the center (and thus filter the motion). If 'in' is outside,
+ * return a point on the edge of the new margin. So for a point x in the
+ * space outside c + margin we return r:
+ * +---+       +---+
+ * | c |  x →  | r x
+ * +---+       +---+
+ *
+ * The effect of this is that initial small motions are filtered. Once we
+ * move into one direction we lag the real coordinates by 'margin' but any
+ * movement that continues into that direction will always be just outside
+ * margin - we get responsive movement. Once we move back into the other
+ * direction, the first movements are filtered again.
+ *
+ * Returning the edge rather than the point avoids cursor jumps, as the
+ * first reachable coordinate is the point next to the center (center + 1).
+ * Otherwise, the center has a dead zone of size margin around it and the
+ * first reachable point is the margin edge.
+ *
+ * Hysteresis is handled separately per axis (and the window is thus
+ * rectangular, not circular). It is unkown if that's an issue, but the
+ * calculation to do circular hysteresis are nontrivial, especially since
+ * many touchpads have uneven x/y resolutions.
+ *
+ * @param in The input coordinate
+ * @param center Current center of the hysteresis
+ * @param margin Hysteresis width (on each side)
+ *
+ * @return The new center of the hysteresis
+ */
 static inline int
 evdev_hysteresis(int in, int center, int margin)
 {
@@ -537,10 +569,10 @@ evdev_hysteresis(int in, int center, int margin)
 	if (abs(diff) <= margin)
 		return center;
 
-	if (diff > margin)
-		return center + diff - margin;
+	if (diff > 0)
+		return in - margin;
 	else
-		return center + diff + margin;
+		return in + margin;
 }
 
 static inline struct libinput *

commit c9d2d5e3dec7ccede33f2c3190b6cc762c819568
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 21 14:10:10 2016 +1000

    test: allow the first event to be a short one during scroll tests
    
    The hysteresis cuts the first pointer motion by the hysteresis margin. On some
    touchpads this causes the tests to fail when the motion history length is
    reduced (future patch). Allow the first event to be smaller than the expected
    minimum.
    
    This doesn't trigger in current tests because the hysteresis is per-event and
    by the time we get past the minimum 4 events to move the pointer, we're
    already flying unaffected by the hysteresis.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/test/litest.c b/test/litest.c
index e685d61..b74f905 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -2806,6 +2806,7 @@ litest_assert_scroll(struct libinput *li,
 	struct libinput_event *event, *next_event;
 	struct libinput_event_pointer *ptrev;
 	int value;
+	int nevents = 0;
 
 	event = libinput_get_event(li);
 	next_event = libinput_get_event(li);
@@ -2813,16 +2814,26 @@ litest_assert_scroll(struct libinput *li,
 
 	while (event) {
 		ptrev = litest_is_axis_event(event, axis, 0);
+		nevents++;
 
 		if (next_event) {
+			int min = minimum_movement;
+
 			value = libinput_event_pointer_get_axis_value(ptrev,
 								      axis);
+			/* Due to how the hysteresis works on touchpad
+			 * events, the first event is reduced by the
+			 * hysteresis margin that can cause the first event
+			 * go under the minimum we expect for all other
+			 * events */
+			if (nevents == 1)
+				min = minimum_movement/2;
+
 			/* Normal scroll event, check dir */
-			if (minimum_movement > 0) {
-				litest_assert_int_ge(value, minimum_movement);
-			} else {
-				litest_assert_int_le(value, minimum_movement);
-			}
+			if (minimum_movement > 0)
+				litest_assert_int_ge(value, min);
+			else
+				litest_assert_int_le(value, min);
 		} else {
 			/* Last scroll event, must be 0 */
 			ck_assert_double_eq(

commit 4fe85b736ab5ea846a94bb22fc65cc20f59ed9f9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 21 14:33:30 2016 +1000

    test: fix edge-scroll no-motion test
    
    The test is supposed to make sure no motion event is sent and that scrolling
    continues once leaving the edge. It does so by moving down the edge, into the
    touchpad, then down further. The move from the edge into the touchpad had a
    vertical component to it though and could cause the scroll minimum test to
    fail. This is currently covered up by the delta calculations though, but fix
    it anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/test/touchpad.c b/test/touchpad.c
index 9a4aa6c..cdc261b 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -664,9 +664,9 @@ START_TEST(touchpad_edge_scroll_no_motion)
 	litest_touch_down(dev, 0, 99, 10);
 	litest_touch_move_to(dev, 0, 99, 10, 99, 70, 12, 0);
 	/* moving outside -> no motion event */
-	litest_touch_move_to(dev, 0, 99, 70, 20, 80, 12, 0);
+	litest_touch_move_to(dev, 0, 99, 70, 20, 70, 12, 0);
 	/* moving down outside edge once scrolling had started -> scroll */
-	litest_touch_move_to(dev, 0, 20, 80, 40, 99, 12, 0);
+	litest_touch_move_to(dev, 0, 20, 70, 40, 99, 12, 0);
 	litest_touch_up(dev, 0);
 	libinput_dispatch(li);
 

commit 63409a693865f11262a15d941755f1277357289e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 21 11:03:58 2016 +1000

    test: start with the first offset when moving touches
    
    This doesn't have an effect in our current tests because the touchpad always
    needs 4 motion events to get moving. But for the future, it simplifies the
    case of "i want to move between x1/y1 and x2/y2", because it fills in only the
    events in between rather than re-using the touch down coordinates and thus not
    causing a motion on the first event.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/test/litest.c b/test/litest.c
index 94da85a..e685d61 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -1603,7 +1603,7 @@ litest_touch_move_to(struct litest_device *d,
 		     double x_to, double y_to,
 		     int steps, int sleep_ms)
 {
-	for (int i = 0; i < steps - 1; i++) {
+	for (int i = 1; i < steps - 1; i++) {
 		litest_touch_move(d, slot,
 				  x_from + (x_to - x_from)/steps * i,
 				  y_from + (y_to - y_from)/steps * i);
@@ -1699,7 +1699,7 @@ litest_touch_move_two_touches(struct litest_device *d,
 			      double dx, double dy,
 			      int steps, int sleep_ms)
 {
-	for (int i = 0; i < steps - 1; i++) {
+	for (int i = 1; i < steps; i++) {
 		litest_push_event_frame(d);
 		litest_touch_move(d, 0, x0 + dx / steps * i,
 					y0 + dy / steps * i);

commit ea8545bd2f05fe9c558e597d98fc94609aa5087a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 22 11:09:02 2016 +1000

    udev: move TEST_EXTENSIONS out of the conditional
    
    Fixes:
    udev/Makefile.am:47: warning: 'TEST_EXTENSIONS' cannot have conditional
    contents
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/udev/Makefile.am b/udev/Makefile.am
index 17ae0b8..2c852a0 100644
--- a/udev/Makefile.am
+++ b/udev/Makefile.am
@@ -42,9 +42,10 @@ DISTCLEANFILES = \
 		 90-libinput-model-quirks.rules 
 EXTRA_DIST = 80-libinput-test-device.rules
 
+TEST_EXTENSIONS = .py
+
 if HAVE_PYTHON
 TESTS = parse_hwdb.py
-TEST_EXTENSIONS = .py
 PY_LOG_COMPILER = $(PYTHON)
 endif
 EXTRA_DIST += parse_hwdb.py

commit ff574d2f5ccc117884ca98dad2827620b7d0f35f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 22 10:59:18 2016 +1000

    test: fix maybe-uninitialized compiler warnings
    
    touchpad-tap.c: In function ‘touchpad_3fg_tap_btntool_inverted’:
    touchpad-tap.c:1548:2: warning: ‘button’ may be used uninitialized in this
    function [-Wmaybe-uninitialized]
    and similar
    
    False positive, if button isn't set by now we would've abort()-ed before we
    even get here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/test/touchpad-tap.c b/test/touchpad-tap.c
index d648e79..0fe2623 100644
--- a/test/touchpad-tap.c
+++ b/test/touchpad-tap.c
@@ -919,7 +919,7 @@ START_TEST(touchpad_2fg_tap)
 	struct litest_device *dev = litest_current_device();
 	struct libinput *li = dev->libinput;
 	enum libinput_config_tap_button_map map = _i; /* ranged test */
-	unsigned int button;
+	unsigned int button = 0;
 
 	litest_enable_tap(dev->libinput_device);
 	litest_set_tap_map(dev->libinput_device, map);
@@ -959,7 +959,7 @@ START_TEST(touchpad_2fg_tap_inverted)
 	struct litest_device *dev = litest_current_device();
 	struct libinput *li = dev->libinput;
 	enum libinput_config_tap_button_map map = _i; /* ranged test */
-	unsigned int button;
+	unsigned int button = 0;
 
 	litest_enable_tap(dev->libinput_device);
 	litest_set_tap_map(dev->libinput_device, map);
@@ -1362,7 +1362,7 @@ START_TEST(touchpad_3fg_tap)
 	struct libinput *li = dev->libinput;
 	struct libinput_event *event;
 	enum libinput_config_tap_button_map map = _i; /* ranged test */
-	unsigned int button;
+	unsigned int button = 0;
 	int i;
 
 	if (libevdev_get_abs_maximum(dev->evdev,
@@ -1454,7 +1454,7 @@ START_TEST(touchpad_3fg_tap_btntool)
 	struct libinput *li = dev->libinput;
 	struct libinput_event *event;
 	enum libinput_config_tap_button_map map = _i; /* ranged test */
-	unsigned int button;
+	unsigned int button = 0;
 
 	if (libevdev_get_abs_maximum(dev->evdev,
 				     ABS_MT_SLOT) > 2)
@@ -1507,7 +1507,7 @@ START_TEST(touchpad_3fg_tap_btntool_inverted)
 	struct libinput *li = dev->libinput;
 	struct libinput_event *event;
 	enum libinput_config_tap_button_map map = _i; /* ranged test */
-	unsigned int button;
+	unsigned int button = 0;
 
 	if (libevdev_get_abs_maximum(dev->evdev,
 				     ABS_MT_SLOT) > 2)

commit f8c2eb073638629034b8830e6ce767379ea67836
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 22 10:57:01 2016 +1000

    test: mark the various abort functions as noreturn
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/test/litest.c b/test/litest.c
index 515eb18..94da85a 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -264,6 +264,7 @@ litest_backtrace(void)
 #endif
 
 LIBINPUT_ATTRIBUTE_PRINTF(5, 6)
+__attribute__((noreturn))
 void
 litest_fail_condition(const char *file,
 		      int line,
@@ -286,6 +287,7 @@ litest_fail_condition(const char *file,
 	abort();
 }
 
+__attribute__((noreturn))
 void
 litest_fail_comparison_int(const char *file,
 			   int line,
@@ -303,6 +305,7 @@ litest_fail_comparison_int(const char *file,
 	abort();
 }
 
+__attribute__((noreturn))
 void
 litest_fail_comparison_ptr(const char *file,
 			   int line,

commit 6752544e566250ef856b836c4b0e8c994155ffa9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 13 19:05:00 2016 +1000

    evdev: add a quirk for the HP Zbook Studio G3
    
    Announces 4 slots but only sends data for the first two. This causes libinput
    to miss three-finger actions (we don't look at BTN_TOOL_TRIPLETAP if we have
    3 or more slots).
    
    https://bugs.freedesktop.org/show_bug.cgi?id=98100
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/evdev.c b/src/evdev.c
index fac8fcb..6a34e37 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2179,6 +2179,7 @@ evdev_read_model_flags(struct evdev_device *device)
 		MODEL(APPLE_MAGICMOUSE),
 		MODEL(HP8510_TOUCHPAD),
 		MODEL(HP6910_TOUCHPAD),
+		MODEL(HP_ZBOOK_STUDIO_G3),
 #undef MODEL
 		{ "ID_INPUT_TRACKBALL", EVDEV_MODEL_TRACKBALL },
 		{ NULL, EVDEV_MODEL_DEFAULT },
@@ -2762,6 +2763,11 @@ evdev_pre_configure_model_quirks(struct evdev_device *device)
 	if (device->model_flags & EVDEV_MODEL_HP_STREAM11_TOUCHPAD)
 		libevdev_enable_property(device->evdev,
 					 INPUT_PROP_BUTTONPAD);
+
+	/* Touchpad claims to have 4 slots but only ever sends 2
+	 * https://bugs.freedesktop.org/show_bug.cgi?id=98100 */
+	if (device->model_flags & EVDEV_MODEL_HP_ZBOOK_STUDIO_G3)
+		libevdev_set_abs_maximum(device->evdev, ABS_MT_SLOT, 1);
 }
 
 struct evdev_device *
diff --git a/src/evdev.h b/src/evdev.h
index b811f51..888cc28 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -121,6 +121,7 @@ enum evdev_device_model {
 	EVDEV_MODEL_APPLE_MAGICMOUSE = (1 << 20),
 	EVDEV_MODEL_HP8510_TOUCHPAD = (1 << 21),
 	EVDEV_MODEL_HP6910_TOUCHPAD = (1 << 22),
+	EVDEV_MODEL_HP_ZBOOK_STUDIO_G3 = (1 << 23),
 };
 
 struct mt_slot {
diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index 4bfc0f9..347a229 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -103,6 +103,10 @@ libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq8510
 libinput:name:SYN1EDE:00 06CB:7442:dmi:*svnHewlett-Packard:pnHPStreamNotebookPC11*
  LIBINPUT_MODEL_HP_STREAM11_TOUCHPAD=1
 
+# HP Zbook Studio G3
+libinput:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnHP:pnHPZBookStudioG3:*
+ LIBINPUT_MODEL_HP_ZBOOK_STUDIO_G3=1
+
 ##########################################
 # LENOVO
 ##########################################

commit 81e0feaceae7a6c5926dae9075d68a202ca962f0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 15 15:09:00 2016 +1000

    Use AM_DISTCHECK_CONFIGURE_FLAGS, not just DISTCHECK_CONFIGURE_FLAGS
    
    The latter is for commandline overrides.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/Makefile.am b/Makefile.am
index 976a7ac..c2001b3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,4 +5,4 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 valgrind:
 	(cd test; $(MAKE) valgrind)
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-test-run
+AM_DISTCHECK_CONFIGURE_FLAGS = --disable-test-run

commit 17c0049d24b2fdccb6136441b4b4c3e8e351bdee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 14 09:35:56 2016 +1000

    Disable test runs on 'distcheck'
    
    The tests require the creation of udev devices which in turn require root and
    usually cause distcheck runs to fail. Add a new option to disable the
    *running* of tests at distcheck (we still want to build them).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/Makefile.am b/Makefile.am
index fc6e6b7..976a7ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,3 +4,5 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 
 valgrind:
 	(cd test; $(MAKE) valgrind)
+
+DISTCHECK_CONFIGURE_FLAGS = --disable-test-run
diff --git a/configure.ac b/configure.ac
index 206a4ed..a70f4be 100644
--- a/configure.ac
+++ b/configure.ac
@@ -211,6 +211,11 @@ if test "x$build_tests" = "xyes"; then
 	fi
 fi
 
+AC_ARG_ENABLE(test-run,
+	      AS_HELP_STRING([--enable-test-run], [For internal use only]),
+	      [run_tests="$enableval"],
+	      [run_tests="yes"])
+
 # Used by the udev rules so we can use callouts during testing without
 # installing everything first. Default is the empty string so the installed
 # rule will use udev's default path. Override is in udev/Makefile.am
@@ -220,6 +225,7 @@ AC_PATH_PROG(SED, [sed])
 ###########################
 # enable/disable libwacom #
 ###########################
+
 AC_ARG_ENABLE(libwacom,
 	      AS_HELP_STRING([--enable-libwacom],
 			     [Use libwacom for tablet identification (default=enabled)]),
@@ -251,6 +257,7 @@ AM_CONDITIONAL(HAVE_LIBWACOM_GET_PAIRED_DEVICE,
 	       [test "x$libwacom_have_get_paired_device" == "xyes"])
 AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
 AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
+AM_CONDITIONAL(RUN_TESTS, [test "x$run_tests" = "xyes"])
 AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
 AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
 AM_CONDITIONAL(BUILD_EVENTGUI, [test "x$build_eventgui" = "xyes"])
diff --git a/test/Makefile.am b/test/Makefile.am
index f4a9252..3f63a7a 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -90,7 +90,10 @@ build_tests = \
 
 noinst_PROGRAMS = $(build_tests) $(run_tests)
 noinst_SCRIPTS = symbols-leak-test
+
+if RUN_TESTS
 TESTS = $(run_tests) symbols-leak-test
+endif
 
 libinput_test_suite_runner_SOURCES = udev.c \
 				     path.c \

commit dae10bca6778ba919bc384366ebd43179470d36c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 14 10:05:41 2016 +1000

    configure.ac: move the udev test path up into the test section
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/configure.ac b/configure.ac
index 5b5b68a..206a4ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -211,6 +211,12 @@ if test "x$build_tests" = "xyes"; then
 	fi
 fi
 
+# Used by the udev rules so we can use callouts during testing without
+# installing everything first. Default is the empty string so the installed
+# rule will use udev's default path. Override is in udev/Makefile.am
+AC_SUBST(UDEV_TEST_PATH, "")
+AC_PATH_PROG(SED, [sed])
+
 ###########################
 # enable/disable libwacom #
 ###########################
@@ -249,12 +255,6 @@ AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
 AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
 AM_CONDITIONAL(BUILD_EVENTGUI, [test "x$build_eventgui" = "xyes"])
 
-# Used by the udev rules so we can use callouts during testing without
-# installing everything first. Default is the empty string so the installed
-# rule will use udev's default path. Override is in udev/Makefile.am
-AC_SUBST(UDEV_TEST_PATH, "")
-AC_PATH_PROG(SED, [sed])
-
 AC_CONFIG_FILES([Makefile
 		 doc/Makefile
 		 doc/libinput.doxygen

commit ceb67268118cbeeabb6b6355b9380d12f4fb55e8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 14 10:04:12 2016 +1000

    configure.ac: add some comment markers to see the configure.ac sections easier
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/configure.ac b/configure.ac
index 012ab0b..5b5b68a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -83,6 +83,9 @@ fi
 AC_SUBST(GCC_CFLAGS)
 AC_SUBST(GCC_CXXFLAGS)
 
+######################
+# udev configuration #
+######################
 udev_dir_default="$libdir/udev"
 AC_ARG_WITH(udev-dir,
             AS_HELP_STRING([--with-udev-dir=DIR],
@@ -96,6 +99,9 @@ AS_CASE($with_udev_dir,
 UDEV_DIR=${udevdir}
 AC_SUBST(UDEV_DIR)
 
+################################
+# enable/disable documentation #
+################################
 AC_ARG_ENABLE([documentation],
 	      [AC_HELP_STRING([--enable-documentation],
 		              [Enable building the documentation (default=auto)])],
@@ -146,6 +152,9 @@ if test "x$build_documentation" = "xyes" -o "x$build_documentation" = "xauto"; t
 	fi
 fi
 
+###########################################
+# enable/disable event gui debugging tool #
+###########################################
 AC_ARG_ENABLE(event-gui,
 	      AS_HELP_STRING([--enable-event-gui], [Build the GUI event viewer (default=auto)]),
 	      [build_eventgui="$enableval"],
@@ -160,6 +169,9 @@ if test "x$build_eventgui" = "xyes"; then
 	PKG_CHECK_MODULES(GTK, [glib-2.0 gtk+-3.0])
 fi
 
+########################
+# enable/disable tests #
+########################
 AC_ARG_ENABLE(tests,
 	      AS_HELP_STRING([--enable-tests], [Build the tests (default=auto)]),
 	      [build_tests="$enableval"],
@@ -199,6 +211,9 @@ if test "x$build_tests" = "xyes"; then
 	fi
 fi
 
+###########################
+# enable/disable libwacom #
+###########################
 AC_ARG_ENABLE(libwacom,
 	      AS_HELP_STRING([--enable-libwacom],
 			     [Use libwacom for tablet identification (default=enabled)]),

commit ba75b56c748afe25cd0cd63768aff3ee57012b1f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 14 09:51:46 2016 +1000

    configure.ac: move all AM_CONDITIONALs into one place
    
    Makes it easier to see in one go what is conditional in the build.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/configure.ac b/configure.ac
index 43db9bb..012ab0b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -159,7 +159,6 @@ if test "x$build_eventgui" = "xyes"; then
 	PKG_CHECK_MODULES(CAIRO, [cairo])
 	PKG_CHECK_MODULES(GTK, [glib-2.0 gtk+-3.0])
 fi
-AM_CONDITIONAL(BUILD_EVENTGUI, [test "x$build_eventgui" = "xyes"])
 
 AC_ARG_ENABLE(tests,
 	      AS_HELP_STRING([--enable-tests], [Build the tests (default=auto)]),
@@ -199,7 +198,6 @@ if test "x$build_tests" = "xyes"; then
 		AC_DEFINE_UNQUOTED(ADDR2LINE, ["$ADDR2LINE"], [Path to addr2line])
 	fi
 fi
-AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
 
 AC_ARG_ENABLE(libwacom,
 	      AS_HELP_STRING([--enable-libwacom],
@@ -227,12 +225,14 @@ if test "x$use_libwacom" = "xyes"; then
 	LIBS=$OLD_LIBS
 	CFLAGS=$OLD_CFLAGS
 fi
+
 AM_CONDITIONAL(HAVE_LIBWACOM_GET_PAIRED_DEVICE,
 	       [test "x$libwacom_have_get_paired_device" == "xyes"])
-
 AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
 AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
 AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
+AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
+AM_CONDITIONAL(BUILD_EVENTGUI, [test "x$build_eventgui" = "xyes"])
 
 # Used by the udev rules so we can use callouts during testing without
 # installing everything first. Default is the empty string so the installed


Reply to: