diff --git a/sway/handlers.c b/sway/handlers.c index b12be9f71..413c17fe8 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -485,12 +485,12 @@ static bool handle_pointer_button(wlc_handle view, uint32_t time, const struct w static void handle_wlc_ready(void) { sway_log(L_DEBUG, "Compositor is ready, executing cmds in queue"); - - int i; - for (i = 0; i < config->cmd_queue->length; ++i) { - handle_command(config, config->cmd_queue->items[i]); + // Execute commands until there are none left + while (config->cmd_queue->length) { + handle_command(config, config->cmd_queue->items[0]); + free(config->cmd_queue->items[0]); + list_del(config->cmd_queue, 0); } - free_flat_list(config->cmd_queue); config->active = true; }