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
signature.asc
Description: PGP signature