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

libinput: Changes to 'debian-unstable'



 configure.ac                       |    4 +--
 debian/changelog                   |    8 +++++++
 debian/control                     |    2 -
 doc/Makefile.am                    |   12 +++++++++--
 src/evdev-mt-touchpad-gestures.c   |    2 -
 src/evdev-mt-touchpad.c            |    4 ++-
 src/evdev-tablet-pad.c             |    4 +++
 src/evdev.c                        |    6 ++++-
 src/libinput.h                     |   21 ++++++++++++++------
 test/keyboard.c                    |   38 +++++++++++++++++++++++++++++++++++++
 udev/90-libinput-model-quirks.hwdb |    8 +++++++
 11 files changed, 95 insertions(+), 14 deletions(-)

New commits:
commit 75a1d5d9e04280e4a90a4241e3c7128ca070c70c
Author: Héctor Orón Martínez <zumbi@debian.org>
Date:   Mon May 30 13:13:20 2016 +0200

    Release Debian version libinput-1.3.1-1
    
    Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>

diff --git a/debian/changelog b/debian/changelog
index c9f7659..6b2495c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+libinput (1.3.1-1) unstable; urgency=medium
+
+  * New upstream release.
+    - Fixes 'libinput is very choppy with ELAN1000 touchpads'
+    (Closes: #825784)
+
+ -- Héctor Orón Martínez <zumbi@debian.org>  Mon, 30 May 2016 12:29:50 +0200
+
 libinput (1.3.0-2) unstable; urgency=medium
 
   * rules: Use --fail-missing for dh_install.

commit a5fdfd7672629b22767768afca4fbe27abb81583
Author: Héctor Orón Martínez <zumbi@debian.org>
Date:   Mon May 30 13:12:58 2016 +0200

    d/control: update uploader name for myself
    
    Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>

diff --git a/debian/control b/debian/control
index 8f92ee9..0acae76 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: libinput
 Section: libs
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: Emilio Pozuelo Monfort <pochu@debian.org>, Hector Oron <zumbi@debian.org>
+Uploaders: Emilio Pozuelo Monfort <pochu@debian.org>, Héctor Orón Martínez <zumbi@debian.org>
 Build-Depends:
  debhelper (>= 9),
  dh-autoreconf,

commit 568be0867f7ac8c37912ad6724a053f40f6aae51
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 30 08:51:11 2016 +1000

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

diff --git a/configure.ac b/configure.ac
index a44d84c..3cf46d4 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], [3])
-m4_define([libinput_micro_version], [0])
+m4_define([libinput_micro_version], [1])
 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=18:3:8
+LIBINPUT_LT_VERSION=18:4:8
 AC_SUBST(LIBINPUT_LT_VERSION)
 
 AM_SILENT_RULES([yes])

commit 0d5d367a82d250d3cdf4b1e21c48bf1cf81b8d7a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 27 10:35:34 2016 +1000

    doc: add the missing svg files to the Makefile.am
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 8d80aae784dececda72ff6c9409b4d421a887f20)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 58effde..62630d0 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -39,15 +39,23 @@ diagram_files = \
 	$(srcdir)/dot/evemu.gv \
 	$(srcdir)/svg/button-scrolling.svg \
 	$(srcdir)/svg/clickfinger.svg \
+	$(srcdir)/svg/clickfinger-distance.svg \
 	$(srcdir)/svg/edge-scrolling.svg \
+	$(srcdir)/svg/gesture-2fg-ambiguity.svg \
 	$(srcdir)/svg/palm-detection.svg \
 	$(srcdir)/svg/pinch-gestures.svg \
+	$(srcdir)/svg/pinch-gestures-softbuttons.svg \
 	$(srcdir)/svg/ptraccel-linear.svg \
 	$(srcdir)/svg/ptraccel-low-dpi.svg \
 	$(srcdir)/svg/ptraccel-touchpad.svg \
 	$(srcdir)/svg/ptraccel-trackpoint.svg \
 	$(srcdir)/svg/software-buttons.svg \
 	$(srcdir)/svg/swipe-gestures.svg \
+	$(srcdir)/svg/tablet-axes.svg \
+	$(srcdir)/svg/tablet-interfaces.svg \
+	$(srcdir)/svg/tablet-left-handed.svg \
+	$(srcdir)/svg/tablet-out-of-bounds.svg \
+	$(srcdir)/svg/tablet.svg \
 	$(srcdir)/svg/tap-n-drag.svg \
 	$(srcdir)/svg/thumb-detection.svg \
 	$(srcdir)/svg/top-software-buttons.svg \

commit 0694e46ccf0a6337441d5e02fb5049f12d97c8cf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 27 10:33:24 2016 +1000

    doc: sort the svg files alphabetically
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 7f9c1f1c6c624252fa50693b05f595304aa26764)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index f56ed6a..58effde 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -37,9 +37,8 @@ diagram_files = \
 	$(srcdir)/dot/libinput-stack-xorg.gv \
 	$(srcdir)/dot/libinput-stack-gnome.gv \
 	$(srcdir)/dot/evemu.gv \
-	$(srcdir)/svg/software-buttons.svg \
-	$(srcdir)/svg/clickfinger.svg \
 	$(srcdir)/svg/button-scrolling.svg \
+	$(srcdir)/svg/clickfinger.svg \
 	$(srcdir)/svg/edge-scrolling.svg \
 	$(srcdir)/svg/palm-detection.svg \
 	$(srcdir)/svg/pinch-gestures.svg \
@@ -47,6 +46,7 @@ diagram_files = \
 	$(srcdir)/svg/ptraccel-low-dpi.svg \
 	$(srcdir)/svg/ptraccel-touchpad.svg \
 	$(srcdir)/svg/ptraccel-trackpoint.svg \
+	$(srcdir)/svg/software-buttons.svg \
 	$(srcdir)/svg/swipe-gestures.svg \
 	$(srcdir)/svg/tap-n-drag.svg \
 	$(srcdir)/svg/thumb-detection.svg \

commit 97ff0002e9b9276819e1caaad204711948bde2bb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 26 08:40:17 2016 +1000

    pad: ignore EV_MSC events
    
    The Wacom Express Key Remote sends the serial number via EV_MSC. At some later
    point we'll need the serial to match the LEDs correctly but for now we can
    ignore them.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 0933650f664560f81145c780ea982f49d4df1924)

diff --git a/src/evdev-tablet-pad.c b/src/evdev-tablet-pad.c
index ad6ead8..5341657 100644
--- a/src/evdev-tablet-pad.c
+++ b/src/evdev-tablet-pad.c
@@ -403,6 +403,10 @@ pad_process(struct evdev_dispatch *dispatch,
 	case EV_SYN:
 		pad_flush(pad, device, time);
 		break;
+	case EV_MSC:
+		/* The EKR sends the serial as MSC_SERIAL, ignore this for
+		 * now */
+		break;
 	default:
 		log_error(device->base.seat->libinput,
 			  "Unexpected event type %s (%#x)\n",

commit 23bacd16c348e48465f84188c84a2500ecc18002
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 24 11:47:48 2016 +1000

    doc: update ref/unref behavior for the tablet tool
    
    Brings it in line with the rest of libinput.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 40e3fe23849e90e50c6bdb4e848b7be120c101a1)

diff --git a/src/libinput.h b/src/libinput.h
index 5b08035..3053909 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -1889,10 +1889,13 @@ libinput_event_tablet_tool_get_y_transformed(struct libinput_event_tablet_tool *
  *
  * Returns the tool that was in use during this event.
  *
- * If the caller holds at least one reference (see
- * libinput_tablet_tool_ref()), this struct is used whenever the
- * tools enters proximity. Otherwise, if no references remain when the tool
- * leaves proximity, the tool may be destroyed.
+ * The returned tablet tool is not refcounted and may become invalid after
+ * the next call to libinput. Use libinput_tablet_tool_ref() and
+ * libinput_tablet_tool_unref() to continue using the handle outside of the
+ * immediate scope.
+ *
+ * If the caller holds at least one reference, this struct is used
+ * whenever the tools enters proximity again.
   *
  * @note Physical tool tracking requires hardware support. If unavailable,
  * libinput creates one tool per type per tablet. See @ref

commit 5acd9a373b5fa2a9652d5852b4d282edf8d765e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 24 11:33:50 2016 +1000

    doc: update doc to explicitly state that the seat isn't referenced
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit c2dfe504ed7110e1cf85c52f7b8495dc0b5f08d8)

diff --git a/src/libinput.h b/src/libinput.h
index 6318484..5b08035 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -3066,6 +3066,11 @@ libinput_device_get_output_name(struct libinput_device *device);
  * seat name pair at any given time, but if no external reference is kept, it
  * may be destroyed if no device belonging to it is left.
  *
+ * The returned seat is not refcounted and may become invalid after
+ * the next call to libinput. Use libinput_seat_ref() and
+ * libinput_seat_unref() to continue using the handle outside of the
+ * immediate scope.
+ *
  * @param device A previously obtained device
  * @return The seat this input device belongs to
  */

commit e2c54e1db2c9c8cd0e8193f55e97fb0c5a962b05
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 19 14:40:33 2016 +1000

    udev: mark ALPS touchpads fw version 300 as wobbly touchpads
    
    Includes the Dell Lattitude E5420 but since all alps touchpads with the same
    fw version are the same (as far as we know) hooking this off the firmware
    version should cover this generation.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1336084
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    (cherry picked from commit cebbe0c2da6ae71f670c2aff2d6263b7518f9249)

diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index 8e15246..88f3243 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -26,6 +26,10 @@ libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:800
 libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:800
  LIBINPUT_ATTR_SIZE_HINT=100x55
 
+libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:300
+libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:300
+ LIBINPUT_MODEL_WOBBLY_TOUCHPAD=1
+
 libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:310
 libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:310
  LIBINPUT_MODEL_ALPS_RUSHMORE=1

commit dca336086663e65ab59c94b028e255b8ac1dd517
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 19 15:04:24 2016 +1000

    udev: add the Yoga 2 to the wobbly touchpads
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95290
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    (cherry picked from commit 595b5f6ae7b5236e0115ce3695eddb6da7552a3d)

diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index 91ac243..8e15246 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -115,6 +115,10 @@ libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPad??60*:
 libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX1Carbon3rd:*
  LIBINPUT_MODEL_LENOVO_T450_TOUCHPAD=1
 
+# Lenovo Yoga 2013
+libinput:name:*SynPS/2 Synaptics TouchPad*:dmi:*svnLENOVO*pvrLenovoYoga213:*
+ LIBINPUT_MODEL_WOBBLY_TOUCHPAD=1
+
 ##########################################
 # Synaptics
 ##########################################

commit c69a5bb78500520102086273f13e94e9c9f019ae
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 19 16:03:20 2016 +1000

    doc: fix a few typos
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 5f4f211d6dac3bbbf0645c41ee93f9e4297c8fbb)

diff --git a/src/libinput.h b/src/libinput.h
index a93676e..6318484 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -1999,7 +1999,7 @@ libinput_event_tablet_tool_get_time_usec(struct libinput_event_tablet_tool *even
 /**
  * @ingroup event_tablet
  *
- * Return the type of tool type for a tool object, see @ref
+ * Return the tool type for a tool object, see @ref
  * tablet-tool-types for details.
  *
  * @param tool The libinput tool
@@ -2047,7 +2047,8 @@ libinput_tablet_tool_ref(struct libinput_tablet_tool *tool);
  * @ingroup event_tablet
  *
  * Decrement the reference count of the tool by one. When the reference
- * count of tool reaches 0, the memory allocated for tool will be freed.
+ * count of the tool reaches 0, the memory allocated for the tool will be
+ * freed.
  *
  * @param tool The tool to decrement the ref count of
  * @return NULL if the tool was destroyed otherwise the passed tool

commit 58f6eed9dbb4662e978dd9f5fe0a6e51e97e5320
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed May 18 07:35:36 2016 +1000

    touchpad: only use negative pressure change check on Lenovo *50 and *60 series
    
    This was introduced for bug 94379 - an X1 Carbon 3rd. Other touchpads have
    different pressure change ranges, causing this condition to trigger
    randomly and resulting in a jerky pointer motion.
    
    For now, reduce the check to the *50 and *60 series touchpads until we have
    data for more touchpads that we can add one-by-one.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95393
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    (cherry picked from commit 2f5231cc88fccf389a78270d827f6c9201b86794)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 4c8c3a3..c854043 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -928,6 +928,7 @@ tp_detect_jumps(const struct tp_dispatch *tp, struct tp_touch *t)
 static void
 tp_process_state(struct tp_dispatch *tp, uint64_t time)
 {
+	struct evdev_device *device = tp->device;
 	struct tp_touch *t;
 	unsigned int i;
 	bool restart_filter = false;
@@ -953,7 +954,8 @@ tp_process_state(struct tp_dispatch *tp, uint64_t time)
 		if (!t->dirty)
 			continue;
 
-		if (t->pressure_delta < -7)
+		if ((device->model_flags & EVDEV_MODEL_LENOVO_T450_TOUCHPAD) &&
+		    t->pressure_delta < -7)
 			tp_motion_history_reset(t);
 
 		if (tp_detect_jumps(tp, t)) {

commit 544d4b6b74ebce289228bd556c7bffeeb4f4f294
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 10 12:07:36 2016 +1000

    evdev: the range between dpad and trigger-happy are keys, not buttons
    
    Affected keys:
    	KEY_ALS_TOGGLE
    	KEY_BUTTONCONFIG
    	KEY_TASKMANAGER
    	KEY_JOURNAL
    	KEY_CONTROLPANEL
    	KEY_APPSELECT
    	KEY_SCREENSAVER
    	KEY_VOICECOMMAND
    	KEY_BRIGHTNESS_MIN
    	KEY_BRIGHTNESS_MAX
    	KEY_KBDINPUTASSIST_PREV
    	KEY_KBDINPUTASSIST_NEXT
    	KEY_KBDINPUTASSIST_PREVGROUP
    	KEY_KBDINPUTASSIST_NEXTGROUP
    	KEY_KBDINPUTASSIST_ACCEPT
    	KEY_KBDINPUTASSIST_CANCEL
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95295
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 8527242ed9bdfc97ba248d3e36a1641213e62ca2)

diff --git a/src/evdev.c b/src/evdev.c
index bcd9c5b..cd05cfc 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -568,7 +568,11 @@ get_key_type(uint16_t code)
 		return EVDEV_KEY_TYPE_BUTTON;
 	if (code >= KEY_OK && code <= KEY_LIGHTS_TOGGLE)
 		return EVDEV_KEY_TYPE_KEY;
-	if (code >= BTN_DPAD_UP && code <= BTN_TRIGGER_HAPPY40)
+	if (code >= BTN_DPAD_UP && code <= BTN_DPAD_RIGHT)
+		return EVDEV_KEY_TYPE_BUTTON;
+	if (code >= KEY_ALS_TOGGLE && code <= KEY_KBDINPUTASSIST_CANCEL)
+		return EVDEV_KEY_TYPE_KEY;
+	if (code >= BTN_TRIGGER_HAPPY && code <= BTN_TRIGGER_HAPPY40)
 		return EVDEV_KEY_TYPE_BUTTON;
 	return EVDEV_KEY_TYPE_NONE;
 }
diff --git a/test/keyboard.c b/test/keyboard.c
index b2f9851..f3aa9df 100644
--- a/test/keyboard.c
+++ b/test/keyboard.c
@@ -342,6 +342,42 @@ START_TEST(keyboard_time_usec)
 }
 END_TEST
 
+START_TEST(keyboard_no_buttons)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	int code;
+	const char *name;
+
+	litest_drain_events(dev->libinput);
+
+	for (code = 0; code < KEY_MAX; code++) {
+		if (!libevdev_has_event_code(dev->evdev, EV_KEY, code))
+			continue;
+
+		name = libevdev_event_code_get_name(EV_KEY, code);
+		if (!name || !strneq(name, "KEY_", 4))
+			continue;
+
+		litest_keyboard_key(dev, code, true);
+		litest_keyboard_key(dev, code, false);
+		libinput_dispatch(li);
+
+		event = libinput_get_event(li);
+		litest_is_keyboard_event(event,
+					 code,
+					 LIBINPUT_KEY_STATE_PRESSED);
+		libinput_event_destroy(event);
+		event = libinput_get_event(li);
+		litest_is_keyboard_event(event,
+					 code,
+					 LIBINPUT_KEY_STATE_RELEASED);
+		libinput_event_destroy(event);
+	}
+}
+END_TEST
+
 void
 litest_setup_tests(void)
 {
@@ -351,4 +387,6 @@ litest_setup_tests(void)
 	litest_add("keyboard:keys", keyboard_has_key, LITEST_KEYS, LITEST_ANY);
 	litest_add("keyboard:keys", keyboard_keys_bad_device, LITEST_ANY, LITEST_ANY);
 	litest_add("keyboard:time", keyboard_time_usec, LITEST_KEYS, LITEST_ANY);
+
+	litest_add("keyboard:events", keyboard_no_buttons, LITEST_KEYS, LITEST_ANY);
 }

commit 31ffda96fac5785700aff40399f0c6aa4b4a6bb1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 13 09:46:50 2016 +1000

    gestures: don't send swipe gestures when gestures are disabled
    
    Introduced in 6ad303b as part of an code flow optimization, causing any 3+
    finger gesture to be posted as swipe gesture, even when gestures are disabled.
    However, the event is filtered in the higher levels with a bug message printed
    to the log.
    
    Don't post swipe gestures for devices where gestures are disabled.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95314
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    (cherry picked from commit 98ee1791ca6496cfe353f729047786237f1ffd3a)

diff --git a/src/evdev-mt-touchpad-gestures.c b/src/evdev-mt-touchpad-gestures.c
index 7bbd3b8..2a804e7 100644
--- a/src/evdev-mt-touchpad-gestures.c
+++ b/src/evdev-mt-touchpad-gestures.c
@@ -248,7 +248,7 @@ tp_gesture_handle_state_none(struct tp_dispatch *tp, uint64_t time)
 		if (ntouches == 2)
 			return GESTURE_STATE_SCROLL;
 		else
-			return GESTURE_STATE_SWIPE;
+			return GESTURE_STATE_NONE;
 	}
 
 	first = touches[0];


Reply to: