From 2b357af7eed9c7dd3a8f9b5bb589c352cabd6406 Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 7 Apr 2018 14:03:30 -0400 Subject: Give keyboard focus to unmanaged xwayland surfaces This fixes dmenu --- sway/desktop/xwayland.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sway/desktop') diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 6de1365d..413dbf8b 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -59,6 +59,13 @@ static void unmanaged_handle_map(struct wl_listener *listener, void *data) { surface->ly = xsurface->y; desktop_damage_surface(xsurface->surface, surface->lx, surface->ly, true); + if (!wlr_xwayland_surface_is_unmanaged(xsurface)) { + struct sway_seat *seat = input_manager_current_seat(input_manager); + struct wlr_xwayland *xwayland = seat->input->server->xwayland; + wlr_xwayland_set_seat(xwayland, seat->wlr_seat); + seat_set_focus_surface(seat, xsurface->surface); + } + // TODO: we don't send surface enter/leave events to xwayland unmanaged // surfaces, but xwayland doesn't support HiDPI anyway } -- cgit v1.2.3