diff options
-rw-r--r-- | sway/desktop/render.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 8e848359..6bea5656 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -1078,15 +1078,22 @@ renderer_end: | |||
1078 | int width, height; | 1078 | int width, height; |
1079 | wlr_output_transformed_resolution(wlr_output, &width, &height); | 1079 | wlr_output_transformed_resolution(wlr_output, &width, &height); |
1080 | 1080 | ||
1081 | if (debug.damage == DAMAGE_HIGHLIGHT) { | 1081 | pixman_region32_t frame_damage; |
1082 | pixman_region32_union_rect(damage, damage, 0, 0, width, height); | 1082 | pixman_region32_init(&frame_damage); |
1083 | } | ||
1084 | 1083 | ||
1085 | enum wl_output_transform transform = | 1084 | enum wl_output_transform transform = |
1086 | wlr_output_transform_invert(wlr_output->transform); | 1085 | wlr_output_transform_invert(wlr_output->transform); |
1087 | wlr_region_transform(damage, damage, transform, width, height); | 1086 | wlr_region_transform(&frame_damage, &output->damage->current, |
1087 | transform, width, height); | ||
1088 | |||
1089 | if (debug.damage == DAMAGE_HIGHLIGHT) { | ||
1090 | pixman_region32_union_rect(&frame_damage, &frame_damage, | ||
1091 | 0, 0, wlr_output->width, wlr_output->height); | ||
1092 | } | ||
1093 | |||
1094 | wlr_output_set_damage(wlr_output, &frame_damage); | ||
1095 | pixman_region32_fini(&frame_damage); | ||
1088 | 1096 | ||
1089 | wlr_output_set_damage(wlr_output, damage); | ||
1090 | if (!wlr_output_commit(wlr_output)) { | 1097 | if (!wlr_output_commit(wlr_output)) { |
1091 | return; | 1098 | return; |
1092 | } | 1099 | } |