diff options
author | Simon Ser <contact@emersion.fr> | 2021-06-25 12:00:26 +0200 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2022-05-07 19:25:44 +0000 |
commit | 352064d76d459b499b39a99f889f96f40987f0e9 (patch) | |
tree | 761960b131a00d9aef86c41943e7806f1f0497cd /xwayland | |
parent | 7ad67e0f1db486bf0994128f9750115722eef6d5 (diff) |
xwayland: add wlr_xwayland_server_options.terminate_delay
This allows users to specify a delay after which the Xwayland process
terminates itself when there are no more X11 clients connected.
Diffstat (limited to 'xwayland')
-rw-r--r-- | xwayland/server.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/xwayland/server.c b/xwayland/server.c index e0cf5aa5..8502fcec 100644 --- a/xwayland/server.c +++ b/xwayland/server.c @@ -49,9 +49,18 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server, argv[i++] = "Xwayland"; argv[i++] = server->display_name; argv[i++] = "-rootless"; - argv[i++] = "-terminate"; argv[i++] = "-core"; + argv[i++] = "-terminate"; +#if HAVE_XWAYLAND_TERMINATE_DELAY + char terminate_delay[16]; + if (server->options.terminate_delay > 0) { + snprintf(terminate_delay, sizeof(terminate_delay), "%d", + server->options.terminate_delay); + argv[i++] = terminate_delay; + } +#endif + #if HAVE_XWAYLAND_LISTENFD argv[i++] = "-listenfd"; argv[i++] = listenfd0; @@ -436,6 +445,10 @@ struct wlr_xwayland_server *wlr_xwayland_server_create( server->wl_display = wl_display; server->options = *options; +#if !HAVE_XWAYLAND_TERMINATE_DELAY + server->options.terminate_delay = 0; +#endif + server->x_fd[0] = server->x_fd[1] = -1; server->wl_fd[0] = server->wl_fd[1] = -1; server->wm_fd[0] = server->wm_fd[1] = -1; |