Handle attached-detached devices with udev monitor #7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(note: avoid the merge conflict it is based on #6)
With this change, libopeninput uses the udev monitor to detect device attach and detach events. The udev monitor only detects changes; wscons_udev_handler() calls libinput_path_add_device() or libinput_path_remove_device() to update the device list, and post_device_event() to send events, similar to libinput_udev_assign_seat().
interface_backends now only track the udev monitor state; all device handling occurs in wscons_udev_handler().
Tested on NetBSD with labwc: devices work correctly after detach/attach, and multiple mice are handled properly.
To test on OpenBSD, add a small patch to libudev-openbsd to handle wskbd and wsmouse devices, e.g., add the following to subsystem_config subsystems[] in udev-utils.c: