desktop/output: fix output manager enabled state

With recent wlroots changes, backends which don't support output
modes can now support being disabled.

We were always marking mode-less outputs as disabled. Stop doing
that, check whether the output takes up some space in the layout
instead.
This commit is contained in:
Simon Ser 2023-07-31 10:09:40 +02:00
parent d3626efe5e
commit 170598d71b

View file

@ -883,13 +883,10 @@ static void update_output_manager_config(struct sway_server *server) {
wlr_output_layout_get_box(root->output_layout, wlr_output_layout_get_box(root->output_layout,
output->wlr_output, &output_box); output->wlr_output, &output_box);
// We mark the output enabled when it's switched off but not disabled // We mark the output enabled when it's switched off but not disabled
config_head->state.enabled = output->current_mode != NULL && output->enabled; config_head->state.enabled = !wlr_box_empty(&output_box);
config_head->state.mode = output->current_mode;
if (!wlr_box_empty(&output_box)) {
config_head->state.x = output_box.x; config_head->state.x = output_box.x;
config_head->state.y = output_box.y; config_head->state.y = output_box.y;
} }
}
wlr_output_manager_v1_set_configuration(server->output_manager_v1, config); wlr_output_manager_v1_set_configuration(server->output_manager_v1, config);