diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2019-04-27 17:49:37 +0300 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2019-04-27 17:49:37 +0300 |
| commit | eb4feb4d4301eda1e0d3d97195bb9ff3190db59a (patch) | |
| tree | 8c2b63b8bba63383d4daef7a6630a96bf4168680 | |
| parent | 7ba561a2eef4eae204814d598f3fbe5ba6049c76 (diff) | |
Don't submit too much damage
| -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: 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); - } + pixman_region32_t frame_damage; + pixman_region32_init(&frame_damage); enum wl_output_transform transform = wlr_output_transform_invert(wlr_output->transform); - wlr_region_transform(damage, damage, transform, width, height); + wlr_region_transform(&frame_damage, &output->damage->current, + transform, width, height); + + if (debug.damage == DAMAGE_HIGHLIGHT) { + pixman_region32_union_rect(&frame_damage, &frame_damage, + 0, 0, wlr_output->width, wlr_output->height); + } + + wlr_output_set_damage(wlr_output, &frame_damage); + pixman_region32_fini(&frame_damage); - wlr_output_set_damage(wlr_output, damage); if (!wlr_output_commit(wlr_output)) { return; } |
