mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-12-31 11:08:25 -05:00
xwayland: terminate when no client is connected
Automatically shutdown Xwayland 10s after all X11 clients have gone away.
This commit is contained in:
parent
352064d76d
commit
f575e445ec
4 changed files with 19 additions and 0 deletions
|
|
@ -1842,6 +1842,7 @@ static void xwm_get_resources(struct wlr_xwm *xwm) {
|
|||
|
||||
wlr_log(WLR_DEBUG, "xfixes version: %" PRIu32 ".%" PRIu32,
|
||||
xfixes_reply->major_version, xfixes_reply->minor_version);
|
||||
xwm->xfixes_major_version = xfixes_reply->major_version;
|
||||
|
||||
free(xfixes_reply);
|
||||
|
||||
|
|
@ -2103,6 +2104,14 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) {
|
|||
sizeof(supported)/sizeof(*supported),
|
||||
supported);
|
||||
|
||||
#if HAS_XCB_XFIXES_SET_CLIENT_DISCONNECT_MODE
|
||||
if (xwm->xwayland->server->options.terminate_delay > 0 &&
|
||||
xwm->xfixes_major_version >= 6) {
|
||||
xcb_xfixes_set_client_disconnect_mode(xwm->xcb_conn,
|
||||
XCB_XFIXES_CLIENT_DISCONNECT_FLAGS_TERMINATE);
|
||||
}
|
||||
#endif
|
||||
|
||||
xcb_flush(xwm->xcb_conn);
|
||||
|
||||
xwm_set_net_active_window(xwm, XCB_WINDOW_NONE);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue