Hello community,

here is the log from the commit of package libinput for openSUSE:Factory 
checked in at 2019-08-27 15:48:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libinput (Old)
 and      /work/SRC/openSUSE:Factory/.libinput.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libinput"

Tue Aug 27 15:48:48 2019 rev:78 rq:725991 version:1.14.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libinput/libinput.changes        2019-08-24 
18:41:13.333787254 +0200
+++ /work/SRC/openSUSE:Factory/.libinput.new.7948/libinput.changes      
2019-08-27 15:48:57.595846393 +0200
@@ -1,0 +2,9 @@
+Mon Aug 26 04:22:25 UTC 2019 - Jan Engelhardt <[email protected]>
+
+- Update to new upstream release 1.14.1
+  * Fix a two-finger interaction (click + drag) was interpreted
+    as scroll event instead of the intended action
+  * The RollerMouse v3 now has debouncing disabled so the
+    double-click button works.
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ libinput.spec ++++++
--- /var/tmp/diff_new_pack.YrvWZ9/_old  2019-08-27 15:49:02.311839150 +0200
+++ /var/tmp/diff_new_pack.YrvWZ9/_new  2019-08-27 15:49:02.311839150 +0200
@@ -18,7 +18,7 @@
 
 Name:           libinput
 %define lname  libinput10
-Version:        1.14.0
+Version:        1.14.1
 Release:        0
 Summary:        Input device and event processing library
 License:        MIT
@@ -41,7 +41,7 @@
 BuildRequires:  graphviz >= 2.26
 BuildRequires:  grep
 BuildRequires:  meson >= 0.41.0
-BuildRequires:  pkgconfig
+BuildRequires:  pkg-config
 BuildRequires:  pkgconfig(cairo)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(gtk+-3.0) >= 3.20

++++++ libinput-1.14.0.tar.xz -> libinput-1.14.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/completion/zsh/_libinput 
new/libinput-1.14.1/completion/zsh/_libinput
--- old/libinput-1.14.0/completion/zsh/_libinput        1970-01-01 
01:00:00.000000000 +0100
+++ new/libinput-1.14.1/completion/zsh/_libinput        2019-08-26 
04:49:02.000000000 +0200
@@ -0,0 +1,199 @@
+#compdef libinput
+
+(( $+functions[_libinput_commands] )) || _libinput_commands()
+{
+       local -a commands
+       commands=(
+               "list-devices:List all devices recognized by libinput"
+               "debug-events:Print all events as seen by libinput"
+               "debug-gui:Show a GUI to visualize libinput's events"
+               "measure:Measure various properties of devices"
+               "record:Record the events from a device"
+               "replay:Replay the events from a device"
+       )
+
+       _describe -t commands 'command' commands
+}
+
+__all_seats()
+{
+       # Obviously only works with logind
+       local -a seats
+       seats=${(f)"$(loginctl --no-legend --no-pager list-seats 2>/dev/null)"}
+       if [[ -z $seats ]]; then
+               # Can always offer seat0, even if we can't enumerate the seats
+               compadd "$@" - seat0
+       else
+               compadd "$@" - $seats
+       fi
+}
+
+(( $+functions[_libinput_list-devices] )) || _libinput_list-devices()
+{
+       _arguments \
+               '--help[Show help and exit]' \
+               '--version[show version information and exit]'
+}
+
+(( $+functions[_libinput_debug-events] )) || _libinput_debug-events()
+{
+       _arguments \
+               '--help[Show debug-events help and exit]' \
+               '--quiet[Only print libinput messages and nothing from this 
tool]' \
+               '--verbose[Use verbose output]' \
+               '--show-keycodes[Make all keycodes visible]' \
+               '--grab[Exclusively grab all opened devices]' \
+               '--device=[Use the given device with the path 
backend]:device:_files -W /dev/input/ -P /dev/input/' \
+               '--udev=[Listen for notifications on the given 
seat]:seat:__all_seats' \
+               '--apply-to=[Apply configuration options where the device name 
matches the pattern]:pattern' \
+               '--disable-sendevents=[Disable send-events option for the 
devices matching the pattern]:pattern' \
+               '--set-click-method=[Set the desired click 
method]:click-method:(none clickfinger buttonareas)' \
+               '--set-scroll-method=[Set the desired scroll 
method]:scroll-method:(none twofinger edge button)' \
+               '--set-scroll-button=[Set the button to the given button code]' 
\
+               '--set-profile=[Set pointer acceleration 
profile]:accel-profile:(adaptive flat)' \
+               '--set-speed=[Set pointer acceleration speed (within range 
\[-1, 1\])]' \
+               '--set-tap-map=[Set button mapping for tapping]:tap-map:((  \
+                       lrm\:2-fingers\ right-click\ /\ 3-fingers\ middle-click 
\
+                       lmr\:2-fingers\ middle-click\ /\ 3-fingers\ right-click 
\
+               ))' \
+               + '(tap-to-click)' \
+               '--enable-tap[Enable tap-to-click]' \
+               '--disable-tap[Disable tap-to-click]' \
+               + '(drag)' \
+               '--enable-drag[Enable tap-and-drag]' \
+               '--disable-drag[Disable tap-and-drag]' \
+               + '(drag-lock)' \
+               '--enable-drag-lock[Enable drag-lock]' \
+               '--disable-drag-lock[Disable drag-lock]' \
+               + '(natural-scrolling)' \
+               '--enable-natural-scrolling[Enable natural scrolling]' \
+               '--disable-natural-scrolling[Disable natural scrolling]' \
+               + '(left-handed)' \
+               '--enable-left-handed[Enable left handed button configuration]' 
\
+               '--disable-left-handed[Disable left handed button 
configuration]' \
+               + '(middlebutton)' \
+               '--enable-middlebutton[Enable middle button emulation]' \
+               '--disable-middlebutton[Disable middle button emulation]' \
+               + '(dwt)' \
+               '--enable-dwt[Enable disable-while-typing]' \
+               '--disable-dwt[Disable enable-while-typing]'
+}
+
+(( $+functions[_libinput_debug-gui] )) || _libinput_debug-gui()
+{
+       _arguments \
+               '--help[Show debug-gui help and exit]' \
+               '--verbose[Use verbose output]' \
+               '--grab[Exclusively grab all opened devices]' \
+               '--device=[Use the given device with the path 
backend]:device:_files -W /dev/input/ -P /dev/input/' \
+               '--udev=[Listen for notifications on the given 
seat]:seat:_libinput_all_seats'
+}
+
+(( $+functions[_libinput_measure] )) || _libinput_measure()
+{
+       local curcontext=$curcontext state line ret=1
+       local features
+       features=(
+               "fuzz:Measure touch fuzz to avoid pointer jitter"
+               "touch-size:Measure touch size and orientation"
+               "touchpad-tap:Measure tap-to-click time"
+               "touchpad-pressure:Measure touch pressure"
+       )
+
+       _arguments -C \
+               '--help[Print help and exit]' \
+               ':feature:->feature' \
+               '*:: :->option-or-argument'
+
+       case $state in
+               (feature)
+                       _describe -t features 'feature' features
+                       ;;
+               (option-or-argument)
+                       
curcontext=${curcontext%:*:*}:libinput-measure-$words[1]:
+                       if ! _call_function ret _libinput_measure_$words[1]; 
then
+                               _message "unknown feature: $words[1]"
+                       fi
+                       ;;
+       esac
+       return ret
+}
+
+(( $+functions[_libinput_measure_fuzz] )) || _libinput_measure_fuzz()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               ':device:_files -W /dev/input/ -P /dev/input/'
+}
+
+(( $+functions[_libinput_measure_touch-size] )) || 
_libinput_measure_touch-size()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               '--touch-threshold=[Assume a touch pressure threshold of 
"down:up"]' \
+               '--palm-threshold=[Assume a palm threshold of N]' \
+               ':device:_files -W /dev/input/ -P /dev/input/'
+}
+
+(( $+functions[_libinput_measure_touchpad-pressure] )) || 
_libinput_measure_touchpad-pressure()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               '--touch-threshold=[Assume a touch pressure threshold of 
"down:up"]' \
+               '--palm-threshold=[Assume a palm threshold of N]' \
+               ':device:_files -W /dev/input/ -P /dev/input/'
+}
+
+(( $+functions[_libinput_measure_touchpad-tap] )) || 
_libinput_measure_touchpad-tap()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               '--format=dat[Specify the data format to be printed. The 
default is "summary"]'
+               ':device:_files -W /dev/input/ -P /dev/input/'
+}
+
+(( $+functions[_libinput_record] )) || _libinput_record()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               '--all[Record all /dev/input/event* devices available on the 
system]' \
+               '--autorestart=[Terminate the current recording after s seconds 
of device inactivity]' \
+               {-o+,--output=}'[Speficy the output file to use]:file:_files -g 
"*.yml"' \
+               '--multiple[Record multiple devices at once]' \
+               '--show-keycodes[Show keycodes as-is in the recording]' \
+               '--with-libinput[Record libinput events alongside device 
events]' \
+               '*::device:_files -W /dev/input/ -P /dev/input/'
+}
+
+(( $+functions[_libinput_replay] )) || _libinput_replay()
+{
+       _arguments \
+               '--help[Show help message and exit]' \
+               ':recording:_files'
+}
+
+_libinput()
+{
+       local curcontext=$curcontext state line ret=1
+
+       _arguments -C \
+               {-h,--help}'[Show help message and exit]' \
+               '--version[Show version information and exit]' \
+               ':command:->command' \
+               '*:: :->option-or-argument' && return
+
+       case $state in
+               (command)
+                       _libinput_commands && ret=0
+                       ;;
+               (option-or-argument)
+                       curcontext=${curcontext%:*:*}:libinput-$words[1]:
+                       if ! _call_function ret _libinput_$words[1]; then
+                               _message "unknown libinput command: $words[1]"
+                       fi
+                       ;;
+       esac
+       return ret
+}
+
+_libinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/completion/zsh/meson.build 
new/libinput-1.14.1/completion/zsh/meson.build
--- old/libinput-1.14.0/completion/zsh/meson.build      1970-01-01 
01:00:00.000000000 +0100
+++ new/libinput-1.14.1/completion/zsh/meson.build      2019-08-26 
04:49:02.000000000 +0200
@@ -0,0 +1,12 @@
+zshcompletiondir = get_option('zshcompletiondir')
+if zshcompletiondir == ''
+               zshcompletiondir = join_paths(get_option('datadir'), 'zsh', 
'site-functions')
+endif
+
+if zshcompletiondir != 'no'
+       install_data(
+               '_libinput',
+               install_dir: zshcompletiondir,
+               install_mode: 'rw-r--r--',
+       )
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/meson.build 
new/libinput-1.14.1/meson.build
--- old/libinput-1.14.0/meson.build     2019-08-08 07:06:16.000000000 +0200
+++ new/libinput-1.14.1/meson.build     2019-08-26 04:49:02.000000000 +0200
@@ -1,5 +1,5 @@
 project('libinput', 'c',
-       version : '1.14.0',
+       version : '1.14.1',
        license : 'MIT/Expat',
        default_options : [ 'c_std=gnu99', 'warning_level=2' ],
        meson_version : '>= 0.41.0')
@@ -405,6 +405,10 @@
        subdir('doc/user')
 endif
 
+############ shell completion #########
+
+subdir('completion/zsh')
+
 ############ tools ############
 libinput_tool_path = dir_libexec
 config_h.set_quoted('LIBINPUT_TOOL_PATH', libinput_tool_path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/meson_options.txt 
new/libinput-1.14.1/meson_options.txt
--- old/libinput-1.14.0/meson_options.txt       2019-08-08 07:06:16.000000000 
+0200
+++ new/libinput-1.14.1/meson_options.txt       2019-08-26 04:49:02.000000000 
+0200
@@ -30,3 +30,7 @@
        type: 'boolean',
        value: false,
        description: 'Enable coverity build fixes, see meson.build for details 
[default=false]')
+option('zshcompletiondir',
+       type: 'string',
+       value: '',
+       description: 'Directory for zsh completion scripts ["no" disables]')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/quirks/30-vendor-contour.quirks 
new/libinput-1.14.1/quirks/30-vendor-contour.quirks
--- old/libinput-1.14.0/quirks/30-vendor-contour.quirks 2019-08-08 
07:06:16.000000000 +0200
+++ new/libinput-1.14.1/quirks/30-vendor-contour.quirks 2019-08-26 
04:49:02.000000000 +0200
@@ -9,3 +9,9 @@
 MatchProduct=0x1000
 MatchUdevType=mouse
 ModelBouncingKeys=1
+
+[Contour Design RollerMouse Red v3]
+MatchVendor=0x0B33
+MatchProduct=0x1004
+MatchUdevType=mouse
+ModelBouncingKeys=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/src/evdev-mt-touchpad-gestures.c 
new/libinput-1.14.1/src/evdev-mt-touchpad-gestures.c
--- old/libinput-1.14.0/src/evdev-mt-touchpad-gestures.c        2019-08-08 
07:06:16.000000000 +0200
+++ new/libinput-1.14.1/src/evdev-mt-touchpad-gestures.c        2019-08-26 
04:49:02.000000000 +0200
@@ -717,8 +717,13 @@
        if (tp->gesture.finger_count == 0)
                return;
 
-       /* When tap-and-dragging, force 1fg mode. */
-       if (tp_tap_dragging(tp)) {
+       /* When tap-and-dragging, force 1fg mode. On clickpads, if the
+        * physical button is down, don't allow gestures unless the button
+        * is held down by a *thumb*, specifically.
+        */
+       if (tp_tap_dragging(tp) ||
+           (tp->buttons.is_clickpad && tp->buttons.state &&
+            tp->thumb.state == THUMB_STATE_FINGER)) {
                tp_gesture_cancel(tp, time);
                tp->gesture.finger_count = 1;
                tp->gesture.finger_count_pending = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/test/test-touchpad-buttons.c 
new/libinput-1.14.1/test/test-touchpad-buttons.c
--- old/libinput-1.14.0/test/test-touchpad-buttons.c    2019-08-08 
07:06:16.000000000 +0200
+++ new/libinput-1.14.1/test/test-touchpad-buttons.c    2019-08-26 
04:49:02.000000000 +0200
@@ -958,6 +958,96 @@
 }
 END_TEST
 
+START_TEST(touchpad_clickfinger_click_drag)
+{
+       struct litest_device *dev = litest_current_device();
+       struct libinput *li = dev->libinput;
+       int nfingers = _i; /* ranged test */
+       unsigned int button;
+       int nslots = libevdev_get_num_slots(dev->evdev);
+
+       litest_enable_clickfinger(dev);
+       litest_drain_events(li);
+
+       litest_touch_down(dev, 0, 40, 50);
+       button = BTN_LEFT;
+
+       if (nfingers > 1) {
+               if (nslots > 1) {
+                       litest_touch_down(dev, 1, 50, 50);
+               } else {
+                       litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
+               }
+               button = BTN_RIGHT;
+       }
+
+       if (nfingers > 2) {
+               if (nslots > 2) {
+                       litest_touch_down(dev, 2, 60, 50);
+               } else {
+                       litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
+                       litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
+               }
+               button = BTN_MIDDLE;
+       }
+
+       litest_button_click(dev, BTN_LEFT, true);
+
+       libinput_dispatch(li);
+       litest_assert_button_event(li, button,
+                                  LIBINPUT_BUTTON_STATE_PRESSED);
+
+       for (int i = 0; i < 20; i++) {
+               litest_push_event_frame(dev);
+               switch (nfingers) {
+               case 3:
+                       if (nslots >= nfingers)
+                               litest_touch_move(dev, 2, 60, 50 + i);
+                       /* fallthrough */
+               case 2:
+                       if (nslots >= nfingers)
+                               litest_touch_move(dev, 1, 50, 50 + i);
+                       /* fallthrough */
+               case 1:
+                       litest_touch_move(dev, 0, 40, 50 + i);
+                       break;
+               }
+               litest_pop_event_frame(dev);
+               libinput_dispatch(li);
+       }
+
+       litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_MOTION);
+
+       litest_button_click(dev, BTN_LEFT, false);
+       litest_assert_button_event(li, button,
+                                  LIBINPUT_BUTTON_STATE_RELEASED);
+
+       if (nfingers > 3) {
+               if (nslots > 3) {
+                       litest_touch_up(dev, 2);
+               } else {
+                       litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
+                       litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
+               }
+       }
+
+       if (nfingers > 2) {
+               if (nslots > 2) {
+                       litest_touch_up(dev, 1);
+               } else {
+                       litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
+               }
+               button = BTN_MIDDLE;
+       }
+
+       litest_touch_up(dev, 0);
+
+
+       libinput_dispatch(li);
+       litest_assert_empty_queue(li);
+}
+END_TEST
+
 START_TEST(touchpad_btn_left)
 {
        struct litest_device *dev = litest_current_device();
@@ -2006,6 +2096,8 @@
 
 TEST_COLLECTION(touchpad_buttons)
 {
+       struct range finger_count = {1, 4};
+
        litest_add("touchpad:button", touchpad_button, LITEST_TOUCHPAD, 
LITEST_CLICKPAD);
 
        litest_add("touchpad:clickfinger", touchpad_1fg_clickfinger, 
LITEST_CLICKPAD, LITEST_ANY);
@@ -2036,6 +2128,8 @@
        litest_add_for_device("touchpad:clickfinger", 
touchpad_clickfinger_appletouch_2fg, LITEST_APPLETOUCH);
        litest_add_for_device("touchpad:clickfinger", 
touchpad_clickfinger_appletouch_3fg, LITEST_APPLETOUCH);
 
+       litest_add_ranged("touchpad:clickfinger", 
touchpad_clickfinger_click_drag, LITEST_CLICKPAD, LITEST_ANY, &finger_count);
+
        litest_add("touchpad:click", touchpad_click_defaults_clickfinger, 
LITEST_APPLE_CLICKPAD, LITEST_ANY);
        litest_add("touchpad:click", touchpad_click_defaults_btnarea, 
LITEST_CLICKPAD, LITEST_APPLE_CLICKPAD);
        litest_add("touchpad:click", touchpad_click_defaults_none, 
LITEST_TOUCHPAD, LITEST_CLICKPAD);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinput-1.14.0/tools/libinput-debug-events.man 
new/libinput-1.14.1/tools/libinput-debug-events.man
--- old/libinput-1.14.0/tools/libinput-debug-events.man 2019-08-08 
07:06:16.000000000 +0200
+++ new/libinput-1.14.1/tools/libinput-debug-events.man 2019-08-26 
04:49:02.000000000 +0200
@@ -65,7 +65,7 @@
 Enable or disable tap-and-drag
 .TP 8
 .B \-\-enable\-drag-lock|\-\-disable\-drag\-lock
-Enable or disable tap-and-drag
+Enable or disable drag-lock
 .TP 8
 .B \-\-enable\-natural\-scrolling|\-\-disable\-natural\-scrolling
 Enable or disable natural scrolling


Reply via email to