From 352064d76d459b499b39a99f889f96f40987f0e9 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 25 Jun 2021 12:00:26 +0200 Subject: 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. --- xwayland/server.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'xwayland') 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; -- cgit v1.2.3