aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2019-04-23 20:36:28 +0300
committerLibravatar Drew DeVault <sir@cmpwn.com>2019-04-23 14:37:44 -0600
commitb6e55064fe2422bcf2694a2ce97899108a75f077 (patch)
treeb1a150588874a984c1e68d77e0315eb5b948585f
parentFix uninitialized read for wlr_surface_send_frame (diff)
downloadsway-b6e55064fe2422bcf2694a2ce97899108a75f077.tar.gz
sway-b6e55064fe2422bcf2694a2ce97899108a75f077.tar.zst
sway-b6e55064fe2422bcf2694a2ce97899108a75f077.zip
Update for wlroots#1660
-rw-r--r--sway/desktop/output.c7
-rw-r--r--sway/desktop/render.c3
2 files changed, 6 insertions, 4 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index b1e3464a..0cc08525 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -378,14 +378,15 @@ static void damage_handle_frame(struct wl_listener *listener, void *data) {
378 struct timespec now; 378 struct timespec now;
379 clock_gettime(CLOCK_MONOTONIC, &now); 379 clock_gettime(CLOCK_MONOTONIC, &now);
380 380
381 bool needs_swap; 381 bool needs_frame;
382 pixman_region32_t damage; 382 pixman_region32_t damage;
383 pixman_region32_init(&damage); 383 pixman_region32_init(&damage);
384 if (!wlr_output_damage_make_current(output->damage, &needs_swap, &damage)) { 384 if (!wlr_output_damage_attach_render(output->damage,
385 &needs_frame, &damage)) {
385 return; 386 return;
386 } 387 }
387 388
388 if (needs_swap) { 389 if (needs_frame) {
389 output_render(output, &now, &damage); 390 output_render(output, &now, &damage);
390 } 391 }
391 392
diff --git a/sway/desktop/render.c b/sway/desktop/render.c
index 771bd908..8e848359 100644
--- a/sway/desktop/render.c
+++ b/sway/desktop/render.c
@@ -1086,7 +1086,8 @@ renderer_end:
1086 wlr_output_transform_invert(wlr_output->transform); 1086 wlr_output_transform_invert(wlr_output->transform);
1087 wlr_region_transform(damage, damage, transform, width, height); 1087 wlr_region_transform(damage, damage, transform, width, height);
1088 1088
1089 if (!wlr_output_damage_swap_buffers(output->damage, when, damage)) { 1089 wlr_output_set_damage(wlr_output, damage);
1090 if (!wlr_output_commit(wlr_output)) {
1090 return; 1091 return;
1091 } 1092 }
1092 output->last_frame = *when; 1093 output->last_frame = *when;