]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/workspaces.c: do not render OSD on disabled outputs
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Wed, 10 May 2023 16:37:28 +0000 (18:37 +0200)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Wed, 17 May 2023 11:56:11 +0000 (13:56 +0200)
Fixes #914

src/workspaces.c

index 625a8d8bce2a459d8d731519825299a8f5d304f2..193fd6da30d93abf791f4289c085686e9da91d36 100644 (file)
@@ -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);
        }