diff options
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r-- | sway/input/seat.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index f969636a..8d592872 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -291,7 +291,8 @@ void sway_seat_configure_xcursor(struct sway_seat *seat) { | |||
291 | seat->cursor->cursor->y); | 291 | seat->cursor->cursor->y); |
292 | } | 292 | } |
293 | 293 | ||
294 | void sway_seat_set_focus(struct sway_seat *seat, struct sway_container *container) { | 294 | void sway_seat_set_focus(struct sway_seat *seat, |
295 | struct sway_container *container) { | ||
295 | struct sway_container *last_focus = sway_seat_get_focus(seat); | 296 | struct sway_container *last_focus = sway_seat_get_focus(seat); |
296 | 297 | ||
297 | if (container && last_focus == container) { | 298 | if (container && last_focus == container) { |
@@ -311,6 +312,11 @@ void sway_seat_set_focus(struct sway_seat *seat, struct sway_container *containe | |||
311 | if (container->type == C_VIEW) { | 312 | if (container->type == C_VIEW) { |
312 | struct sway_view *view = container->sway_view; | 313 | struct sway_view *view = container->sway_view; |
313 | view_set_activated(view, true); | 314 | view_set_activated(view, true); |
315 | if (view->type == SWAY_XWAYLAND_VIEW) { | ||
316 | struct wlr_xwayland *xwayland = | ||
317 | seat->input->server->xwayland; | ||
318 | wlr_xwayland_set_seat(xwayland, seat->wlr_seat); | ||
319 | } | ||
314 | struct wlr_keyboard *keyboard = | 320 | struct wlr_keyboard *keyboard = |
315 | wlr_seat_get_keyboard(seat->wlr_seat); | 321 | wlr_seat_get_keyboard(seat->wlr_seat); |
316 | if (keyboard) { | 322 | if (keyboard) { |