mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-12 16:35:58 +01:00
xwayland: embed wlr_xwayland_server_options in server struct
As more options are added, more fields will be duplicated. Let's just embed the struct in wlr_xwayland_server so that we don't need to keep both in sync.
This commit is contained in:
parent
4b316a3823
commit
770a561bce
2 changed files with 12 additions and 14 deletions
|
@ -19,6 +19,11 @@
|
|||
struct wlr_xwm;
|
||||
struct wlr_xwayland_cursor;
|
||||
|
||||
struct wlr_xwayland_server_options {
|
||||
bool lazy;
|
||||
bool enable_wm;
|
||||
};
|
||||
|
||||
struct wlr_xwayland_server {
|
||||
pid_t pid;
|
||||
struct wl_client *client;
|
||||
|
@ -33,8 +38,7 @@ struct wlr_xwayland_server {
|
|||
char display_name[16];
|
||||
int x_fd[2];
|
||||
struct wl_event_source *x_fd_read_event[2];
|
||||
bool lazy;
|
||||
bool enable_wm;
|
||||
struct wlr_xwayland_server_options options;
|
||||
|
||||
struct wl_display *wl_display;
|
||||
|
||||
|
@ -49,11 +53,6 @@ struct wlr_xwayland_server {
|
|||
void *data;
|
||||
};
|
||||
|
||||
struct wlr_xwayland_server_options {
|
||||
bool lazy;
|
||||
bool enable_wm;
|
||||
};
|
||||
|
||||
struct wlr_xwayland_server_ready_event {
|
||||
struct wlr_xwayland_server *server;
|
||||
int wm_fd;
|
||||
|
|
|
@ -32,7 +32,7 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) {
|
|||
wlr_log(WLR_ERROR, "Failed to unset CLOEXEC on FD");
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
if (server->enable_wm && !set_cloexec(server->wm_fd[1], false)) {
|
||||
if (server->options.enable_wm && !set_cloexec(server->wm_fd[1], false)) {
|
||||
wlr_log(WLR_ERROR, "Failed to unset CLOEXEC on FD");
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) {
|
|||
#endif
|
||||
|
||||
char wmfd[16];
|
||||
if (server->enable_wm) {
|
||||
if (server->options.enable_wm) {
|
||||
snprintf(wmfd, sizeof(wmfd), "%d", server->wm_fd[1]);
|
||||
argv[i++] = "-wm";
|
||||
argv[i++] = wmfd;
|
||||
|
@ -187,7 +187,7 @@ static void handle_client_destroy(struct wl_listener *listener, void *data) {
|
|||
server_finish_process(server);
|
||||
|
||||
if (time(NULL) - server->server_start > 5) {
|
||||
if (server->lazy) {
|
||||
if (server->options.lazy) {
|
||||
wlr_log(WLR_INFO, "Restarting Xwayland (lazy)");
|
||||
server_start_lazy(server);
|
||||
} else {
|
||||
|
@ -287,7 +287,7 @@ static bool server_start(struct wlr_xwayland_server *server) {
|
|||
server_finish_process(server);
|
||||
return false;
|
||||
}
|
||||
if (server->enable_wm) {
|
||||
if (server->options.enable_wm) {
|
||||
if (socketpair(AF_UNIX, SOCK_STREAM, 0, server->wm_fd) != 0) {
|
||||
wlr_log_errno(WLR_ERROR, "socketpair failed");
|
||||
server_finish_process(server);
|
||||
|
@ -443,8 +443,7 @@ struct wlr_xwayland_server *wlr_xwayland_server_create(
|
|||
}
|
||||
|
||||
server->wl_display = wl_display;
|
||||
server->lazy = options->lazy;
|
||||
server->enable_wm = options->enable_wm;
|
||||
server->options = *options;
|
||||
|
||||
server->x_fd[0] = server->x_fd[1] = -1;
|
||||
server->wl_fd[0] = server->wl_fd[1] = -1;
|
||||
|
@ -457,7 +456,7 @@ struct wlr_xwayland_server *wlr_xwayland_server_create(
|
|||
goto error_alloc;
|
||||
}
|
||||
|
||||
if (server->lazy) {
|
||||
if (server->options.lazy) {
|
||||
if (!server_start_lazy(server)) {
|
||||
goto error_display;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue