diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-31 09:29:34 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-03-31 09:29:34 -0400 |
commit | 5c08e13e5093a393a42b7310de9ac24bb374d313 (patch) | |
tree | 143f996b86221a3b3613ce807bc15e2a95ca7817 | |
parent | Configure linux_dmabuf, primary_selection (diff) | |
download | sway-5c08e13e5093a393a42b7310de9ac24bb374d313.tar.gz sway-5c08e13e5093a393a42b7310de9ac24bb374d313.tar.zst sway-5c08e13e5093a393a42b7310de9ac24bb374d313.zip |
Set Xwayland seat on focus
Necessary to make primary selection syncronize
-rw-r--r-- | sway/input/seat.c | 8 | ||||
-rw-r--r-- | sway/server.c | 1 |
2 files changed, 7 insertions, 2 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) { |
diff --git a/sway/server.c b/sway/server.c index 59e7dc3f..f5cc199c 100644 --- a/sway/server.c +++ b/sway/server.c | |||
@@ -110,7 +110,6 @@ bool server_init(struct sway_server *server) { | |||
110 | } | 110 | } |
111 | 111 | ||
112 | input_manager = sway_input_manager_create(server); | 112 | input_manager = sway_input_manager_create(server); |
113 | |||
114 | return true; | 113 | return true; |
115 | } | 114 | } |
116 | 115 | ||