From f2aa030aac973172e2b9a56dfb08189c1ebb3051 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Wed, 10 May 2023 18:37:28 +0200 Subject: [PATCH] src/workspaces.c: do not render OSD on disabled outputs Fixes #914 --- src/workspaces.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/workspaces.c b/src/workspaces.c index 625a8d8b..193fd6da 100644 --- a/src/workspaces.c +++ b/src/workspaces.c @@ -72,6 +72,9 @@ _osd_update(struct server *server) struct output *output; wl_list_for_each(output, &server->outputs, link) { + if (!output_is_usable(output)) { + continue; + } struct lab_data_buffer *buffer = buffer_create_cairo(width, height, output->wlr_output->scale, true); if (!buffer) { @@ -209,7 +212,9 @@ _osd_show(struct server *server) _osd_update(server); struct output *output; wl_list_for_each(output, &server->outputs, link) { - wlr_scene_node_set_enabled(&output->workspace_osd->node, true); + if (output_is_usable(output) && output->workspace_osd) { + wlr_scene_node_set_enabled(&output->workspace_osd->node, true); + } } struct wlr_keyboard *keyboard = &server->seat.keyboard_group->keyboard; if (keyboard_any_modifiers_pressed(keyboard)) { @@ -286,6 +291,9 @@ workspaces_osd_hide(struct seat *seat) struct output *output; struct server *server = seat->server; wl_list_for_each(output, &server->outputs, link) { + if (!output->workspace_osd) { + continue; + } wlr_scene_node_set_enabled(&output->workspace_osd->node, false); wlr_scene_buffer_set_buffer(output->workspace_osd, NULL); }