[ANNOUNCE] libei 1.4.0
Peter Hutterer
peter.hutterer at who-t.net
Wed Feb 12 03:28:05 UTC 2025
libei 1.4.0 is now available. No changes since the 1.4 RC1.
libei is a library to send Emulated Input (EI) to a matching Emulated Input
Server (EIS) which can receive those events with libeis, also part of this
project.
libei uses GitLab releases, for tarballs please see:
https://gitlab.freedesktop.org/libinput/libei/-/releases/
libei 1.4 has a few new APIs:
ei_disconnect() is now public and thus can be invoked by the caller. Previously
the only way to disconnect was to release the last ref to the ei context (which
would then ei_disconnect() internally). This made cleanup code more difficult
than it needed to be. Callers can now ei_disconnect() and unref when they're
finished with the cleanup.
libei now provides an ei_ping() call with a corresponding EI_EVENT_PONG event.
Calling that function allows a caller to order events correctly, e.g. issuing
a request followed by ei_ping() guarantees that any effects of the request will
have been processed by the time the EI_EVENT_PONG arrives (and thus any events
after that the event are caused by other reasons).
libeis now provides an eis_ping() call and EIS_EVENT_PONG event that works
effectively just like the libei one.
This functionaliy has been part of the protocol already but was not previously
exposed.
The documentation has been updated that the modifiers event
(eis_device_keyboard_send_xkb_modifiers()) should be generated fro any state
change. This makes proper tracking of the XKB state in the client more reliable
(well, possible). Note that for proper tacking the client will require the use
of ei_ping() so it can associate any key events with the correct modifier state
at the time.
Erik Jensen (1):
Specify MODIFIERS to be sent for any state change.
Peter Hutterer (56):
README: reword the blurb about short lived applications
doc: demote the socket backend in the documentation
Add a few missing va_end
test: add a few non-null checks to make the static analyzer happy
util: silence out-of-bounds read warning
util: fix a comment to use the right decimal marker for english
util: fix a leaking fd in a test
util: use xalloc instead of calloc to avoid NULL checks
oeffis: rewrite sender_name to make the analyzer happy
util: do an allocation null check in strstrip
util: correct the fd validity check
scanner: switch to using dataclasses
Drop black, switch to ruff format
Revert "util: silence out-of-bounds read warning"
test: print the line no for peck_ei(s)_assert_no_events
test: improve debugging for failed event type comparisons
tools: fix colorprint in the demo server
tool: allow for touchscreen-only seat in the demo server
libei: fix an error message, spurious 'd'
test: make the c++ build test mirror the c build test
meson.build: allow disabling libei and libeis
ei: declare struct ei_touch
proto: correct some documentation regarding ei_touchscreen
test: fix string encoding in the python test bindings
util: Add the trace() debugging macro
ei: make ei_disconnect() public
eis: remove pending events on eis_device_remove()
test: keep the announced interface as local variable
test: switch a bool([...]) to any()
test: ignore a ConnectionResetError during our dispatch
test: ignore a failure to send a pong
test: fix a spuriously failing timeout
tools/debug-events: add missing linebreaks to the modifier event
ei: indentation fix
proto: add two missing comments for consistency
test: drop the use of attr
test: rename a variable to shut up ruff with default args
CI: force all auto features to enabled
doc: unwinding state before stop_emulating is the caller's responsibility
protocol: fix the description summary for the touch events
Add the ei_touchscreen.cancel event and ei_touch_cancel()
doc: fix some linewrapping issues
tools/demo-server: note that aborting on unknown events is bad
doc: specifically mention that unknown events must be unref'd
ei: revamp the internal sync callback
eis: revamp the internal sync callback
ei: add ei_ping() and the matching EI_EVENT_PONG
eis: add eis_ping() and the matching EIS_EVENT_PONG
test: add a test for sync events during frames
eis: add EI_EVENT_SYNC as opaque event to correctly schedule callbacks
ei: add EI_EVENT_SYNC as opaque event to correctly schedule callbacks
proto: fix a trailing whitespace
CI: drop the python-black naming from the ruff job
pre-commit: update to the latest version of our hooks
Reformat for ruff 0.9
libei 1.4 RC1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20250212/eebbdc76/attachment.sig>
More information about the wayland-devel
mailing list