[ANNOUNCE] libinput 0.7.0
Peter Hutterer
peter.hutterer at who-t.net
Thu Dec 4 21:01:23 PST 2014
A new release of libinput, 0.7, is available.
A main focus in this cycle was to get to almost feature parity with the
current X-based input stack. Things libinput gained since 0.6:
* devices can be disabled/enabled at runtime. This includes smart disabling
of touchpads when a USB mouse is plugged in, and smart disabling of the
T440 touchpads so that the top buttons still work even when the touchpad
is disabled.
* edge scrolling is available on some devices, and the scroll method can be
switched at runtime
* trackpoints can scroll by pressing the middle button and moving the stick.
This button-scrolling method is also available on other devices on request.
* pointer acceleration is becoming device-resolution independent, provided
your device has a DPI entry in the udev hwdb. This makes high-resolution
gaming mice behave normally. See this post for more details:
http://who-t.blogspot.com/2014/12/building-a-dpi-database-for-mice.html
* pointer speed can be changed at runtime
* natural scrolling is now available, for touchpads and mice
* devices can be switched to left-handed, libinput handles the details
* devices can be asked to change their assigned logical seat at runtime
* relative pointer events also provide unaccelerated motion. Note that this
is _not_ raw data as it comes from the device, it's normalized to
1000dpi.
There are no API breakages in this version, but many additions.
Note that the APIs that are marked as deprecated since 0.6 will be removed
in the next version.
Two convenience functions were added to get the struct libinput back from a
device or a seat object:
libinput_seat_get_context()
libinput_device_get_context()
The call to reassign a new logical seat to a device is:
libinput_device_set_seat_logical_name()
Some callers have a requirement to modify or examine the device outside of
what libinput provides. libinput now can hand callers the matching udev
device (if any) that represents a libinput device:
libinput_device_get_udev_device()
To access unaccelerated delta motion from pointer events:
libinput_event_pointer_get_dx_unaccelerated()
libinput_event_pointer_get_dy_unaccelerated()
Config APIs always come in a quartett of has/set/get/get_default, I've only
listed the respective "set" method below, please find the rest in the API
docs:
libinput_device_config_accel_set_speed()
libinput_device_config_send_events_set_mode()
libinput_device_config_scroll_set_natural_scroll_enabled()
libinput_device_config_scroll_set_mode()
libinput_device_config_buttons_set_left_handed()
To know which button can be used to enable button-based scrolling:
libinput_device_has_button()
And of course the usual cleanups, fixes, etc.
The full commit shortlog is below.
David Herrmann (2):
util: introduce ratelimit helpers
evdev: ratelimit SYN_DROPPED logging
Derek Foreman (8):
cosmetic: Remove prototype for nonexistent create_linear_acceleration_filter()
cosmetic: convert evdev_need_touch_frame from int to bool
evdev: Log evdev event queue overflows
filter: Fix typo
filter: perform speed computations with doubles
evdev: add DPI to evdev calculations
evdev: Fix uninitialized variable warning
evdev: Query mouse DPI from udev
Hans de Goede (39):
evdev: Move generic scroll code from evdev-mt-touchpad.c to evdev.c
evdev: Add middle button scrolling for trackpoints
evdev: Add an internal device suspend / resume notification system
touchpad: Route top softbuttons through the trackstick if we've one
touchpad: Put state unrolling code in a tp_clear_state() helper function
touchpad: When disabling a TOPBUTTONPAD, leave the top buttons enabled
touchpad: Enlarge topbutton area a bit while the touchpad is disabled
litest: Add litest_assert_scroll() helper function
test: Add trackpoint middlebutton scrolling tests
core: Make time argument to internal foo_notify_bar functions 64 bit
core: Add timestamp parameter to post_device_event
core: Add internal event notification mechanism
core: Move libinput_event definition to libinput-private.h
touchpad: Rewrite / fix tp_release_all_taps
touchpad: Add tap suspend / resume
touchpad: Rename consumed to filter_motion
touchpad: Disable touchpads on trackpoint activity
touchpad: Fix log_bug_libinput calls on tap enable with fingers down
litest: Add a sleep_ms parameter to litest_touch_move_to
touchpad: Make motion during tap-n-drag test take some time
touchpad: Don't send scroll events during 2 finger tap-n-drag
touchpad: Add a test for 2fg tap-n-drag release on a 3th finger down
touchpad: Make tap code follow state machine diagram part 1
touchpad: Make tap code follow state machine diagram part 2
touchpad: Make tap code follow state machine diagram part 3
Fix libinput_device_config_send_events_get_default_mode docs
Add libinput_device_has_button function
Add configuration option to select scroll mode
evdev: Add evdev_any_button_down helper function
evdev: Hookup scroll mode configuration
touchpad: s/config/config_natural/
test: s/test_2fg_scroll/test_trackpoint_scroll/
test: Add trackpoint middle button scrolling disable test
test: Add litest_button_scroll helper function
test: Add button scroll test to pointer tests
touchpad: Hookup scroll-mode configuration
touchpad: Move 2 finger scrolling functions to above tp_process_state()
touchpad: Add code to get the touchpad model / manufacturer
touchpad: Add edge-scrolling support
Jonas Ã…dahl (2):
Introduce unaccelerated motion event vectors
test: Don't send two motion events when button scrolling
Krzysztof A. Sobiecki (1):
Ignore devices that have joystick buttons
Peter Hutterer (107):
test: fix a jumping touch movement
test: print strerror() if uinput device creation fails
Add a helper function for clock_gettime
test: avoid erroneous devices to be passed into the test suites
test: add litest_add_device()
test: move assert_button_event to litest proper
test: wait for events in litest_assert_button_events
touchpad: fix tap-and-drag handling for timeouts
evdev: prefix the hw key/button bitmask with 'hw'
evdev: factor out closing a device into evdev_suspend()
evdev: prevent double-suspending a device
Add a config interface for enabling/disabling event generation from a device
evdev: add helper function evdev_need_mtdev
evdev: hook up a generic enable/disable interface for devices
evdev: don't resume a removed device
test: add test for device suspend/resume
evdev: drop the button count when releasing keys on remove
touchpad: split handling the state into a separate function
touchpad: hook up sendevents configuration
test: test for release events on device suspend
evdev: add a internal device notification mechanism
evdev: add internal tagging system
touchpad: implement conditional disabling
touchpad: move softbutton initialization to separate function
touchpad: Keep track of associated trackpoint device
test: Test the topbuttons of a disabled touchpad still send events through the trackpoint
evdev: drop unused declaration evdev_proces_event
Drop two semicolons after a macro definition
Replace pointer acceleration with a much simpler linear one
filter: add a filter-private.h header file
filter: move the threshold/accel into the filter struct
filter: add a configurable speed interface
filter: adjust acceleration curve depending on speed
touchpad: use the evdev device's filter struct
Add a pointer acceleration API
evdev: hook into pointer acceleration config interface
touchpad: hook up pointer acceleration configuration
tools: keep a list of devices around for run-time changes
tools: map KEY_UP/DOWN to pointer acceleration
Add a configuration option for natural scrolling
touchpad: hook up natural scrolling configuration
test: add tests for natural scrolling
Add missing doxygen @ingroup commands
test: add helper functions for the two timers we care about
test: add litest_push/pop_event_frame() helpers
Add configuration option for left-handed behavior
evdev: hook up left-handed configuration option
touchpad: hook up left-handed configuration
test: add some left-handed tests
doc: update for latest doxygen
Fix a documentation typo
Fix documentation for libinput_log_set_handler
test: drop superfluous empty line
test: pass an enum for the axis instead of uint
Change sendevents configuration to use bitmasks
evdev: factor out resolution changing code
evdev: move a comment to where it belongs
evdev: handle fake MT devices
test: add the MS surface touch cover device and fake-mt tests
test: fix coding style
evdev: don't ignore REL_HWHEEL values over 1
test: rename LITEST_POINTER to LITEST_RELATIVE
test: add QEMU tablet as test device
test: add test for absolute pointer motion
test: add Xen Virtual Pointer device
test: add VMWare Virtual USB Mouse device
test: rename a parameter to litest_assert_scroll()
evdev: move scroll flag setting/check into a helper function
evdev: use fabs(x) instead of (x <= -a || x >= a)
touchpad: explicitly init scroll settings
evdev: use distance triggers to start scrolling
evdev: add missing break
evdev: fix indentation on an if condition
Allow for a 0 button on button scrolling
tools: print config options for each device on DEVICE_ADDED
tools: print the device name on DEVICE_ADDED
evdev: move calibration/sendevents config init into helpers
evdev: move natural scrolling configuration into evdev
evdev: enable natural scrolling for all pointer devices
test: add natural scrolling tests for pointers
doc: add a few missing @ref tags
touchpad: print the device name on error
Drop unused libinput_device->terminated field
evdev: fix leaking file descriptor
Rename scroll_mode to scroll_method
path: keep the udev context around
path: split out creating a device into a helper function
path: store the udev device instead of just the devnode
evdev: use a udev_device instead of separate sysname/syspath/devnode
evdev: remove a race condition opening the wrong device
udev: optionally pass the seat name into device_added()
path: optionally pass the seat name into path_device_enable()
Add libinput_device_set_seat_logical_name() to change seats at runtime
test: add seat changing tests
test: move device ID test to test/device.c
filter: fix a comment, 400 isn't hard-coded anymore
Move DEFAULT_MOUSE_DPI to filter.h
Change default DPI to 1000
Add a function to retrieve the udev_device handle from a libinput device
Add libinput_device_get_context/libinput_seat_get_context
Document relative motion normalization
Add missing @ingroup tag
touchpad: drop unused device arg from tp_clear_state
Always check for INVALID configs first
Split libinput-util into a noinst helper library
udev: only apply default calibration on absolute devices
configure.ac: libinput 0.7
git tag: 0.7.0
http://www.freedesktop.org/software/libinput/libinput-0.7.0.tar.xz
MD5: 381b61396de28c12716ef7a5475fea50 libinput-0.7.0.tar.xz
SHA1: 4bbe9c7ccb23215a818f440e94cb84edc58e99e8 libinput-0.7.0.tar.xz
SHA256: 129f485afe5e4a9394641293991c97cb99f5f3338340d0d65b704ff463d1579e libinput-0.7.0.tar.xz
PGP: http://www.freedesktop.org/software/libinput/libinput-0.7.0.tar.xz.sig
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20141205/3103190a/attachment.sig>
More information about the wayland-devel
mailing list