diff --git a/sway/desktop/render.c b/sway/desktop/render.c index ca8ef83b8..2afed82d2 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -1079,15 +1079,22 @@ renderer_end: wlr_render_texture(renderer, root->debug_tree, wlr_output->transform_matrix, 0, 40, 1); } - if (debug.damage == DAMAGE_HIGHLIGHT) { - int width, height; - wlr_output_transformed_resolution(wlr_output, &width, &height); - pixman_region32_union_rect(damage, damage, 0, 0, width, height); - } wlr_renderer_scissor(renderer, NULL); wlr_output_render_software_cursors(wlr_output, damage); wlr_renderer_end(renderer); + + int width, height; + wlr_output_transformed_resolution(wlr_output, &width, &height); + + if (debug.damage == DAMAGE_HIGHLIGHT) { + pixman_region32_union_rect(damage, damage, 0, 0, width, height); + } + + enum wl_output_transform transform = + wlr_output_transform_invert(wlr_output->transform); + wlr_region_transform(damage, damage, transform, width, height); + if (!wlr_output_damage_swap_buffers(output->damage, when, damage)) { return; }