Merge pull request #457 from Consolatis/fix/xwayland_seat

xwayland: (Re)set seat when xwayland is ready
This commit is contained in:
Johan Malm 2022-07-21 18:13:08 +01:00 committed by GitHub
commit 302b1e8299
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View file

@ -165,6 +165,7 @@ struct server {
struct wl_listener xdg_toplevel_decoration;
#if HAVE_XWAYLAND
struct wlr_xwayland *xwayland;
struct wl_listener xwayland_ready;
struct wl_listener new_xwayland_surface;
#endif

View file

@ -174,6 +174,16 @@ handle_drm_lease_request(struct wl_listener *listener, void *data)
}
}
#if HAVE_XWAYLAND
static void
handle_xwayland_ready(struct wl_listener *listener, void *data)
{
struct server *server =
wl_container_of(listener, server, xwayland_ready);
wlr_xwayland_set_seat(server->xwayland, server->seat.seat);
}
#endif
void
server_init(struct server *server)
{
@ -403,6 +413,10 @@ server_init(struct server *server)
wl_signal_add(&server->xwayland->events.new_surface,
&server->new_xwayland_surface);
server->xwayland_ready.notify = handle_xwayland_ready;
wl_signal_add(&server->xwayland->events.ready,
&server->xwayland_ready);
if (setenv("DISPLAY", server->xwayland->display_name, true) < 0) {
wlr_log_errno(WLR_ERROR, "unable to set DISPLAY for xwayland");
} else {
@ -457,10 +471,6 @@ server_start(struct server *server)
} else {
wlr_log(WLR_DEBUG, "WAYLAND_DISPLAY=%s", socket);
}
#if HAVE_XWAYLAND
wlr_xwayland_set_seat(server->xwayland, server->seat.seat);
#endif
}
void