Skip to content

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).

Edited by Brian Tarricone
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information