diff --git a/modules/applications/labwc/patches/remove-ext-workspace-output-on-destroy.patch b/modules/applications/labwc/patches/remove-ext-workspace-output-on-destroy.patch new file mode 100644 index 0000000..807fa2d --- /dev/null +++ b/modules/applications/labwc/patches/remove-ext-workspace-output-on-destroy.patch @@ -0,0 +1,28 @@ +From: Codex +Subject: [PATCH] output: remove destroyed output from ext-workspace group + +The DRM backend destroys and recreates outputs when a session is paused and +resumed. Remove the output from the ext-workspace group before wlroots +finishes it, otherwise the group's output_bind listener remains attached and +wlr_output_finish() aborts. + +--- + src/output.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/output.c b/src/output.c +index 2eab8ec..f19c3ff 100644 +--- a/src/output.c ++++ b/src/output.c +@@ -277,6 +277,9 @@ handle_output_destroy(struct wl_listener *listener, void *data) + struct seat *seat = &server.seat; + regions_evacuate_output(output); + regions_destroy(seat, &output->regions); ++ wlr_ext_workspace_group_handle_v1_output_leave( ++ server.workspaces.ext_group, output->wlr_output); ++ + if (seat->overlay.active.output == output) { + overlay_finish(seat); + } +-- +2.51.0