multi-seat is not really supported
The current Wayland code always uses the last-advertised seat (which is certainly backward), and the only API that uses it internally (xfw_window_activate()
) uses only that seat.
On X11, seats don't really matter.
In libwlembed, I expose a WleSeat
object that just has wle_seat_get_name()
to help callers match their own wl_seat
instance with ours, and callers can support multi-seat by using it when doing things like focusing or unfocusing an embedded view (and WleGtkSocket
uses this to try to match the GdkSeat
in events with WleSeat
).
I'm thinking that the signature of xfw_window_activate()
should be:
void xfw_window_activate(XfwWindow *window,
XfwSeat *seat,
guint64 timestamp,
GError **error);
It can accept NULL
for seat
, in which case it will try to activate on all known seats. We'll provide a XfwSeat
class as well, along with xfw_screen_get_seats()
. For X11 we can create a dummy seat, or, if we really want to at some point, we can use libseat (but it's unclear what we'd actually do with these seats, since X11 multi-seat isn't something we really support).