From 4d43f1dd996e61e38d89adf0ad1435dac32e38a5 Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Tue, 26 Jan 2021 00:13:42 +0100 Subject: [PATCH] desktop/output: Disable head if mode is NULL wlr_output_configuration_head_v1_create normally fills out the head "enabled" field to match the wlr_output state. We overwrite this to also set the head as enabled if it is only turned off with DPMS. However, in some cases we may not have a mode for this display, in which case setting it as enabled will lead to a segfault later on. Therefore, enabled conditional on the presence of a mode. --- sway/desktop/output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 5edc8f96..691a285d 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -816,7 +816,7 @@ static void update_output_manager_config(struct sway_server *server) { struct wlr_box *output_box = wlr_output_layout_get_box( root->output_layout, output->wlr_output); // We mark the output enabled even if it is switched off by DPMS - config_head->state.enabled = output->enabled; + config_head->state.enabled = output->current_mode != NULL && output->enabled; config_head->state.mode = output->current_mode; if (output_box) { config_head->state.x = output_box->x;