aboutsummaryrefslogtreecommitdiff
path: root/rootston/main.c
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2017-11-22 08:10:06 -0500
committerTony Crisci <tony@dubstepdish.com>2017-11-22 08:10:06 -0500
commitb0683874e98a2dab7cc73734355bb8e0ad656113 (patch)
tree810f987a840d25b302d235129aa37185b5283522 /rootston/main.c
parentea6f77b4840f8a282f645f8ceb3fdd7b72d6af65 (diff)
xwm: send selection data
Diffstat (limited to 'rootston/main.c')
-rw-r--r--rootston/main.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/rootston/main.c b/rootston/main.c
index 74f9195c..38bbec53 100644
--- a/rootston/main.c
+++ b/rootston/main.c
@@ -13,6 +13,19 @@
struct roots_server server = { 0 };
static void ready(struct wl_listener *listener, void *data) {
+ struct roots_desktop *desktop =
+ wl_container_of(listener, desktop, xwayland_ready);
+
+#ifdef HAS_XWAYLAND
+ struct wlr_xwayland *xwayland = data;
+ if (xwayland) {
+ struct roots_seat *seat =
+ input_get_seat(desktop->server->input,
+ ROOTS_CONFIG_DEFAULT_SEAT_NAME);
+ wlr_xwayland_set_seat(xwayland, seat->seat);
+ }
+#endif
+
if (server.config->startup_cmd != NULL) {
const char *cmd = server.config->startup_cmd;
pid_t pid = fork();
@@ -38,12 +51,6 @@ int main(int argc, char **argv) {
server.desktop = desktop_create(&server, server.config);
server.input = input_create(&server, server.config);
- struct roots_seat *default_seat =
- roots_seat_create(server.input, ROOTS_CONFIG_DEFAULT_SEAT_NAME);
- if (server.desktop->xwayland) {
- server.desktop->xwayland->seat = default_seat->seat;
- }
-
const char *socket = wl_display_add_socket_auto(server.wl_display);
if (!socket) {
wlr_log_errno(L_ERROR, "Unable to open wayland socket");