diff --git a/output.c b/output.c index f36c229..a9cb3ef 100644 --- a/output.c +++ b/output.c @@ -85,7 +85,9 @@ damage_surface(struct wlr_surface *surface, int sx, int sy, void *data) .height = surface->current.height * wlr_output->scale, }; - if (pixman_region32_not_empty(&surface->buffer_damage)) { + if (ddata->whole) { + wlr_output_damage_add_box(output->damage, &box); + } else if (pixman_region32_not_empty(&surface->buffer_damage)) { pixman_region32_t damage; pixman_region32_init(&damage); wlr_surface_get_effective_damage(surface, &damage); @@ -102,10 +104,6 @@ damage_surface(struct wlr_surface *surface, int sx, int sy, void *data) wlr_output_damage_add(output->damage, &damage); pixman_region32_fini(&damage); } - - if (ddata->whole) { - wlr_output_damage_add_box(output->damage, &box); - } } /* Used to move all of the data necessary to render a surface from the