[PATCH libinput 0/9] Changing logical seat names

Peter Hutterer peter.hutterer at who-t.net
Sun Nov 23 16:46:40 PST 2014

libinput devices are assigned to a struct libinput_seat that is immutable.
The seat consists of physical seat (e.g. "seat0", i.e. ID_SEAT) and a
logical seat ("default", WL_SEAT if available).

The physical seat is used as filter whether a device is added at all, 
the logical seat effectively corresponds to a wl_seat or to a XI2 master
device pair in xorg.

This patch enables a caller to change the logical seat name, implemented as
effectively removing the device from the current seat as if unplugged, then
adding it to the new seat.

Why is this needed? libinput provides a couple of functions that are
seat-related. For example, libinput_event_pointer_get_seat_button_count()
returns the number of devices within that seat that have a specific button
down. This obviously only works if the device is assigned to the right seat,
if a compositor moves the device to a new wl_seat at runtime this function
becomes useless and libinput's view of which seat the device is in is off.
That again matters for things like disable-while-typing etc.


More information about the wayland-devel mailing list