aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2019-04-27 17:49:37 +0300
committerLibravatar Drew DeVault <sir@cmpwn.com>2019-04-27 09:50:49 -0600
commit9aafef352b493154e461d4925b7b938fa21c937b (patch)
tree8c2b63b8bba63383d4daef7a6630a96bf4168680
parentconfig: fix clang warning (diff)
downloadsway-9aafef352b493154e461d4925b7b938fa21c937b.tar.gz
sway-9aafef352b493154e461d4925b7b938fa21c937b.tar.zst
sway-9aafef352b493154e461d4925b7b938fa21c937b.zip
Don't submit too much damage
-rw-r--r--sway/desktop/render.c17
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 }