Hello community,

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

Package is "libinput"

Sat Jul 14 20:14:31 2018 rev:64 rq:621692 version:1.11.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libinput/libinput.changes        2018-06-25 
11:36:06.251425717 +0200
+++ /work/SRC/openSUSE:Factory/.libinput.new/libinput.changes   2018-07-14 
20:14:34.126552391 +0200
@@ -1,0 +2,9 @@
+Sat Jul  7 20:46:41 UTC 2018 - bjorn....@gmail.com
+
+- Update to version 1.11.2:
+  * Add a trackpoint range entry for the Lenovo X270.
+  * Better lid handling for the Lenovo Thinkpad Yoga models.
+  * Fixed touchpad palm detection on the Lenovo X1 Carbon 6th.
+  * Change pressure ranges for the XPS13 9333.
+
+-------------------------------------------------------------------

Old:
----
  libinput-1.11.1.tar.xz
  libinput-1.11.1.tar.xz.sig

New:
----
  libinput-1.11.2.tar.xz
  libinput-1.11.2.tar.xz.sig

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

Other differences:
------------------
++++++ libinput.spec ++++++
--- /var/tmp/diff_new_pack.qDUQpU/_old  2018-07-14 20:14:34.574553525 +0200
+++ /var/tmp/diff_new_pack.qDUQpU/_new  2018-07-14 20:14:34.574553525 +0200
@@ -22,7 +22,7 @@
 
 Name:           libinput
 %define lname  libinput10
-Version:        1.11.1
+Version:        1.11.2
 Release:        0
 Summary:        Input device and event processing library
 License:        MIT

++++++ libinput-1.11.1.tar.xz -> libinput-1.11.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/doc/building.dox 
new/libinput-1.11.2/doc/building.dox
--- old/libinput-1.11.1/doc/building.dox        2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/doc/building.dox        2018-07-03 06:47:19.000000000 
+0200
@@ -117,9 +117,18 @@
 @subsection building_dependencies Build dependencies
 
 libinput has a few build-time dependencies that must be installed prior to
-running configure. In most cases, it is sufficient to install the
-dependencies that your distribution uses to build the libinput package.
-These can be installed with one of the following commands:
+running configure.
+
+@note The build dependencies for some distributions can be found in the
+<a 
href="https://gitlab.freedesktop.org/libinput/libinput/blob/master/.gitlab-ci.yml";>
+GitLab Continuous Integration file</a>. Search for <b>FEDORA_RPMS</b> in the
+<b>variables:</b> definition and check the list for an entry for your
+distribution.
+
+
+In most cases, it is sufficient to install the dependencies that your
+distribution uses to build the libinput package.  These can be installed
+with one of the following commands:
 
 <ul>
 <li><b>Debian/Ubuntu</b> based distributions: ```sudo apt-get build-dep
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/doc/pointer-acceleration.dox 
new/libinput-1.11.2/doc/pointer-acceleration.dox
--- old/libinput-1.11.1/doc/pointer-acceleration.dox    2018-06-19 
07:00:35.000000000 +0200
+++ new/libinput-1.11.2/doc/pointer-acceleration.dox    2018-07-03 
06:47:19.000000000 +0200
@@ -12,7 +12,7 @@
 @section ptraccel-profiles Pointer acceleration profiles
 
 The profile decides the general method of pointer acceleration.
-libinput currently supports two profiles: "adaptive" and "flat". The aptive
+libinput currently supports two profiles: "adaptive" and "flat". The adaptive
 profile is the default profile for all devices and takes the current speed
 of the device into account when deciding on acceleration. The flat profile
 is simply a constant factor applied to all device deltas, regardless of the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/meson.build 
new/libinput-1.11.2/meson.build
--- old/libinput-1.11.1/meson.build     2018-06-19 07:00:35.000000000 +0200
+++ new/libinput-1.11.2/meson.build     2018-07-03 06:47:19.000000000 +0200
@@ -1,5 +1,5 @@
 project('libinput', 'c', 'cpp',
-       version : '1.11.1',
+       version : '1.11.2',
        license : 'MIT/Expat',
        default_options : [ 'c_std=gnu99', 'warning_level=2' ],
        meson_version : '>= 0.40.0')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/src/evdev-fallback.c 
new/libinput-1.11.2/src/evdev-fallback.c
--- old/libinput-1.11.1/src/evdev-fallback.c    2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/src/evdev-fallback.c    2018-07-03 06:47:19.000000000 
+0200
@@ -1012,6 +1012,9 @@
        struct fallback_dispatch *dispatch = fallback_dispatch(evdev_dispatch);
        struct evdev_paired_keyboard *kbd, *tmp;
 
+       libinput_timer_cancel(&dispatch->debounce.timer);
+       libinput_timer_cancel(&dispatch->debounce.timer_short);
+
        
libinput_device_remove_event_listener(&dispatch->tablet_mode.other.listener);
 
        list_for_each_safe(kbd,
@@ -1081,10 +1084,9 @@
 {
        struct fallback_dispatch *dispatch = fallback_dispatch(evdev_dispatch);
 
-       libinput_timer_cancel(&dispatch->debounce.timer);
        libinput_timer_destroy(&dispatch->debounce.timer);
-       libinput_timer_cancel(&dispatch->debounce.timer_short);
        libinput_timer_destroy(&dispatch->debounce.timer_short);
+
        free(dispatch->mt.slots);
        free(dispatch);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/src/evdev-mt-touchpad.c 
new/libinput-1.11.2/src/evdev-mt-touchpad.c
--- old/libinput-1.11.1/src/evdev-mt-touchpad.c 2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/src/evdev-mt-touchpad.c 2018-07-03 06:47:19.000000000 
+0200
@@ -846,9 +846,6 @@
                 !t->is_tool_palm)
                t->palm.state = PALM_NONE;
 
-       if (t->palm.state == PALM_TOOL_PALM)
-               tp_stop_actions(tp, time);
-
        return t->palm.state == PALM_TOOL_PALM;
 }
 
@@ -1522,6 +1519,11 @@
        tp_for_each_touch(tp, t) {
                if (t->state == TOUCH_MAYBE_END)
                        tp_end_touch(tp, t, time);
+
+               /* Ignore motion when pressure/touch size fell below the
+                * threshold, thus ending the touch */
+               if (t->state == TOUCH_END && t->history.count > 0)
+                       t->point = tp_motion_history_offset(t, 0)->point;
        }
 
 }
@@ -1784,6 +1786,8 @@
 {
        struct tp_dispatch *tp = tp_dispatch(dispatch);
 
+       libinput_timer_cancel(&tp->arbitration.arbitration_timer);
+
        tp_remove_tap(tp);
        tp_remove_buttons(tp);
        tp_remove_sendevents(tp);
@@ -1796,7 +1800,6 @@
 {
        struct tp_dispatch *tp = tp_dispatch(dispatch);
 
-       libinput_timer_cancel(&tp->arbitration.arbitration_timer);
        libinput_timer_destroy(&tp->arbitration.arbitration_timer);
        libinput_timer_destroy(&tp->palm.trackpoint_timer);
        libinput_timer_destroy(&tp->dwt.keyboard_timer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/test/test-pointer.c 
new/libinput-1.11.2/test/test-pointer.c
--- old/libinput-1.11.1/test/test-pointer.c     2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/test/test-pointer.c     2018-07-03 06:47:19.000000000 
+0200
@@ -2533,6 +2533,58 @@
 }
 END_TEST
 
+START_TEST(debounce_remove_device_button_up)
+{
+       struct libinput *li;
+       struct litest_device *dev;
+
+       li = litest_create_context();
+
+       dev = litest_add_device(li, LITEST_MOUSE);
+       litest_drain_events(li);
+
+       litest_event(dev, EV_KEY, BTN_LEFT, 1);
+       litest_event(dev, EV_SYN, SYN_REPORT, 0);
+       litest_event(dev, EV_KEY, BTN_LEFT, 0);
+       litest_event(dev, EV_SYN, SYN_REPORT, 0);
+       libinput_dispatch(li);
+
+       /* delete the device  while the timer is still active */
+       litest_delete_device(dev);
+       libinput_dispatch(li);
+
+       litest_timeout_debounce();
+       libinput_dispatch(li);
+
+       libinput_unref(li);
+}
+END_TEST
+
+START_TEST(debounce_remove_device_button_down)
+{
+       struct libinput *li;
+       struct litest_device *dev;
+
+       li = litest_create_context();
+
+       dev = litest_add_device(li, LITEST_MOUSE);
+       litest_drain_events(li);
+
+       litest_event(dev, EV_KEY, BTN_LEFT, 1);
+       litest_event(dev, EV_SYN, SYN_REPORT, 0);
+       libinput_dispatch(li);
+
+       /* delete the device the timer is still active */
+       litest_delete_device(dev);
+       libinput_dispatch(li);
+
+       litest_timeout_debounce();
+       libinput_dispatch(li);
+
+       libinput_unref(li);
+}
+END_TEST
+
 TEST_COLLECTION(pointer)
 {
        struct range axis_range = {ABS_X, ABS_Y + 1};
@@ -2607,4 +2659,6 @@
        litest_add("pointer:debounce_otherbutton", 
debounce_spurious_dont_enable_on_otherbutton, LITEST_BUTTON, 
LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
        litest_add("pointer:debounce_otherbutton", 
debounce_spurious_cancel_debounce_otherbutton, LITEST_BUTTON, 
LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
        litest_add("pointer:debounce_otherbutton", 
debounce_spurious_switch_to_otherbutton, LITEST_BUTTON, 
LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+       litest_add_no_device("pointer:debounce", 
debounce_remove_device_button_down);
+       litest_add_no_device("pointer:debounce", 
debounce_remove_device_button_up);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/test/test-touchpad.c 
new/libinput-1.11.2/test/test-touchpad.c
--- old/libinput-1.11.1/test/test-touchpad.c    2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/test/test-touchpad.c    2018-07-03 06:47:19.000000000 
+0200
@@ -1541,6 +1541,48 @@
 }
 END_TEST
 
+START_TEST(touchpad_palm_detect_tool_palm_tap_after)
+{
+       struct litest_device *dev = litest_current_device();
+       struct libinput *li = dev->libinput;
+
+       if (!touchpad_has_tool_palm(dev))
+               return;
+
+       litest_enable_tap(dev->libinput_device);
+       litest_drain_events(li);
+
+       litest_push_event_frame(dev);
+       litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM);
+       litest_touch_down(dev, 0, 50, 50);
+       litest_pop_event_frame(dev);
+       libinput_dispatch(li);
+
+       litest_touch_move_to(dev, 0, 50, 50, 50, 80, 10, 0);
+       libinput_dispatch(li);
+
+       litest_assert_empty_queue(li);
+
+       litest_push_event_frame(dev);
+       litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER);
+       litest_touch_up(dev, 0);
+       litest_pop_event_frame(dev);
+       libinput_dispatch(li);
+       litest_timeout_tap();
+       litest_assert_empty_queue(li);
+
+       litest_touch_down(dev, 0, 50, 50);
+       libinput_dispatch(li);
+       litest_touch_up(dev, 0);
+       libinput_dispatch(li);
+       litest_timeout_tap();
+
+       litest_assert_button_event(li, BTN_LEFT, LIBINPUT_BUTTON_STATE_PRESSED);
+       litest_assert_button_event(li, BTN_LEFT, 
LIBINPUT_BUTTON_STATE_RELEASED);
+       litest_assert_empty_queue(li);
+}
+END_TEST
+
 START_TEST(touchpad_palm_detect_tool_palm_tap)
 {
        struct litest_device *dev = litest_current_device();
@@ -6336,6 +6378,7 @@
        litest_add("touchpad:palm", touchpad_palm_detect_tool_palm, 
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
        litest_add("touchpad:palm", touchpad_palm_detect_tool_palm_on_off, 
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
        litest_add("touchpad:palm", touchpad_palm_detect_tool_palm_tap, 
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
+       litest_add("touchpad:palm", touchpad_palm_detect_tool_palm_tap_after, 
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
        litest_add("touchpad:palm", touchpad_palm_detect_touch_size, 
LITEST_APPLE_CLICKPAD, LITEST_ANY);
 
        litest_add("touchpad:palm", touchpad_palm_detect_pressure, 
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/tools/libinput-list-devices.c 
new/libinput-1.11.2/tools/libinput-list-devices.c
--- old/libinput-1.11.1/tools/libinput-list-devices.c   2018-06-19 
07:00:35.000000000 +0200
+++ new/libinput-1.11.2/tools/libinput-list-devices.c   2018-07-03 
06:47:19.000000000 +0200
@@ -372,6 +372,7 @@
 {
        struct libinput *li;
        struct libinput_event *ev;
+       bool grab = false;
 
        /* This is kept for backwards-compatibility with the old
           libinput-list-devices */
@@ -388,7 +389,7 @@
                }
        }
 
-       li = tools_open_backend(BACKEND_UDEV, "seat0", false, false);
+       li = tools_open_backend(BACKEND_UDEV, "seat0", false, &grab);
        if (!li)
                return 1;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/tools/libinput-measure-touch-size 
new/libinput-1.11.2/tools/libinput-measure-touch-size
--- old/libinput-1.11.1/tools/libinput-measure-touch-size       2018-06-19 
07:00:35.000000000 +0200
+++ new/libinput-1.11.2/tools/libinput-measure-touch-size       2018-07-03 
06:47:19.000000000 +0200
@@ -138,7 +138,7 @@
 
     def _str_summary(self):
         if not self.points:
-                return "Sequence: no major/minor values recorded"
+            return "{:78s}".format("Sequence: no major/minor values recorded")
 
         s = "Sequence: major: [{:3d}..{:3d}] ".format(
                 self.major_range.min, self.major_range.max
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinput-1.11.1/tools/libinput-measure-touchpad-pressure 
new/libinput-1.11.2/tools/libinput-measure-touchpad-pressure
--- old/libinput-1.11.1/tools/libinput-measure-touchpad-pressure        
2018-06-19 07:00:35.000000000 +0200
+++ new/libinput-1.11.2/tools/libinput-measure-touchpad-pressure        
2018-07-03 06:47:19.000000000 +0200
@@ -105,6 +105,9 @@
         return self._str_state() if self.is_active else self._str_summary()
 
     def _str_summary(self):
+        if not self.points:
+            return "{:78s}".format("Sequence: no pressure values recorded")
+
         s = "Sequence {} pressure: "\
             "min: {:3d} max: {:3d} avg: {:3d} median: {:3d} tags:" \
             .format(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/tools/libinput-tool.c 
new/libinput-1.11.2/tools/libinput-tool.c
--- old/libinput-1.11.1/tools/libinput-tool.c   2018-06-19 07:00:35.000000000 
+0200
+++ new/libinput-1.11.2/tools/libinput-tool.c   2018-07-03 06:47:19.000000000 
+0200
@@ -57,6 +57,12 @@
               "\n"
               "  measure <feature>\n"
               "        Measure various device properties. See the man page for 
more info\n"
+              "\n"
+              "  record\n"
+              "        Record event stream from a device node. See the man 
page for more info\n"
+              "\n"
+              "  replay\n"
+              "        Replay a previously recorded event stream. See the man 
page for more info\n"
               "\n");
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/tools/shared.c 
new/libinput-1.11.2/tools/shared.c
--- old/libinput-1.11.1/tools/shared.c  2018-06-19 07:00:35.000000000 +0200
+++ new/libinput-1.11.2/tools/shared.c  2018-07-03 06:47:19.000000000 +0200
@@ -232,7 +232,7 @@
        if (fd < 0)
                fprintf(stderr, "Failed to open %s (%s)\n",
                        path, strerror(errno));
-       else if (*grab && ioctl(fd, EVIOCGRAB, (void*)1) == -1)
+       else if (grab && *grab && ioctl(fd, EVIOCGRAB, (void*)1) == -1)
                fprintf(stderr, "Grab requested, but failed for %s (%s)\n",
                        path, strerror(errno));
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.11.1/udev/90-libinput-model-quirks.hwdb 
new/libinput-1.11.2/udev/90-libinput-model-quirks.hwdb
--- old/libinput-1.11.1/udev/90-libinput-model-quirks.hwdb      2018-06-19 
07:00:35.000000000 +0200
+++ new/libinput-1.11.2/udev/90-libinput-model-quirks.hwdb      2018-07-03 
06:47:19.000000000 +0200
@@ -124,6 +124,10 @@
  LIBINPUT_ATTR_PRESSURE_RANGE=30:20
  LIBINPUT_ATTR_PALM_PRESSURE_THRESHOLD=254
 
+libinput:name:*Synaptics s3203:dmi:*svnDellInc.:*pnXPS139333*
+ LIBINPUT_ATTR_PRESSURE_RANGE=15:10
+ LIBINPUT_ATTR_PALM_PRESSURE_THRESHOLD=150
+
 ##########################################
 # Elantech
 ##########################################
@@ -276,17 +280,23 @@
 libinput:keyboard:input:b0003v17EFp6047*
  LIBINPUT_ATTR_KEYBOARD_INTEGRATION=external
 
+# Lenovo X270
+libinput:name:*TPPS/2 IBM TrackPoint*:dmi:svnLENOVO:*:pvrThinkPadX270:*
+ LIBINPUT_ATTR_TRACKPOINT_RANGE=40
+
 # Lenovo X280
 libinput:name:*ALPS TrackPoint*:dmi:svnLENOVO:*:pvrThinkPadX280:*
  LIBINPUT_ATTR_TRACKPOINT_RANGE=70
 
-# Lenovo Thinkpad X1 Yoga disables the keyboard anyway but has the same device
-# use a windows key on the screen and volume rocker on the side (#103749)
-libinput:name:AT Translated Set 2 
keyboard:dmi:*svnLENOVO:*pvrThinkPadX1Yoga1st:*
+# Lenovo Thinkpad Yoga (not the consumer versions) disables the keyboard
+# mechanically. We must not disable the keyboard because some keys are
+# still accessible on the screen and volume rocker.
+# Initially #103749 and extended by #106799 comment 7
+libinput:name:AT Translated Set 2 keyboard:dmi:*svnLENOVO:*pvrThinkPad*Yoga*:*
  LIBINPUT_MODEL_TABLET_MODE_NO_SUSPEND=1
 
 # Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device)
-libinput:name:Synaptics TM3288-010:dmi:*svnLenovo:*pvrThinkPadX1Carbon6th:*
+libinput:name:Synaptics TM3288-011:dmi:*svnLenovo:*pvrThinkPadX1Carbon6th:*
  LIBINPUT_MODEL_LENOVO_CARBON_X1_6TH=1
 
 ##########################################


Reply via email to