From 89ae1792b58a1a29afce7e00da06593187297459 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 16 May 2018 12:29:30 +0900 Subject: [PATCH] sway: run commands without waiting for Xwayland Xwayland is lazy now, there is no need to wait at all --- include/sway/server.h | 1 - sway/main.c | 14 ++++++++++++-- sway/server.c | 20 -------------------- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/include/sway/server.h b/include/sway/server.h index c95ee0f3f..65d96e7a4 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -40,7 +40,6 @@ struct sway_server { struct wlr_xwayland *xwayland; struct wlr_xcursor_manager *xcursor_manager; struct wl_listener xwayland_surface; - struct wl_listener xwayland_ready; struct wlr_wl_shell *wl_shell; struct wl_listener wl_shell_surface; diff --git a/sway/main.c b/sway/main.c index efb674b6b..e03b8e3af 100644 --- a/sway/main.c +++ b/sway/main.c @@ -16,6 +16,7 @@ #include #endif #include +#include "sway/commands.h" #include "sway/config.h" #include "sway/debug.h" #include "sway/server.h" @@ -410,9 +411,18 @@ int main(int argc, char **argv) { security_sanity_check(); - // TODO: wait for server to be ready - // TODO: consume config->cmd_queue config->active = true; + // Execute commands until there are none left + while (config->cmd_queue->length) { + char *line = config->cmd_queue->items[0]; + struct cmd_results *res = execute_command(line, NULL); + if (res->status != CMD_SUCCESS) { + wlr_log(L_ERROR, "Error on line '%s': %s", line, res->error); + } + free_cmd_results(res); + free(line); + list_del(config->cmd_queue, 0); + } if (!terminate_request) { server_run(&server); diff --git a/sway/server.c b/sway/server.c index 050ddf56c..e47cc5b67 100644 --- a/sway/server.c +++ b/sway/server.c @@ -19,27 +19,11 @@ #include // TODO WLR: make Xwayland optional #include -#include "sway/commands.h" #include "sway/config.h" #include "sway/input/input-manager.h" #include "sway/server.h" #include "sway/tree/layout.h" -static void server_ready(struct wl_listener *listener, void *data) { - wlr_log(L_DEBUG, "Compositor is ready, executing cmds in queue"); - // Execute commands until there are none left - config->active = true; - while (config->cmd_queue->length) { - char *line = config->cmd_queue->items[0]; - struct cmd_results *res = execute_command(line, NULL); - if (res->status != CMD_SUCCESS) { - wlr_log(L_ERROR, "Error on line '%s': %s", line, res->error); - } - free_cmd_results(res); - free(line); - list_del(config->cmd_queue, 0); - } -} bool server_init(struct sway_server *server) { wlr_log(L_DEBUG, "Initializing Wayland server"); @@ -93,10 +77,6 @@ bool server_init(struct sway_server *server) { wl_signal_add(&server->xwayland->events.new_surface, &server->xwayland_surface); server->xwayland_surface.notify = handle_xwayland_surface; - wl_signal_add(&server->xwayland->events.ready, - &server->xwayland_ready); - // TODO: call server_ready now if xwayland is not enabled - server->xwayland_ready.notify = server_ready; // TODO: configurable cursor theme and size server->xcursor_manager = wlr_xcursor_manager_create(NULL, 24);