From 15d60efee9ecd92c8ff73f2b6972994adab1e279 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Fri, 27 Jan 2012 14:38:33 +0200 Subject: [PATCH] compositor: make overlap computation use the boundingbox This makes the overlap to account for surface transformations. Signed-off-by: Pekka Paalanen --- src/compositor.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 9f94abf..87c0fbe 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -910,18 +910,15 @@ weston_output_repaint(struct weston_output *output, int msecs) pixman_region32_init(&overlap); wl_list_for_each(es, &ec->surface_list, link) { + weston_surface_update_transform(es); + pixman_region32_init(&surface_overlap); - pixman_region32_intersect_rect(&surface_overlap, - &overlap, - es->geometry.x, es->geometry.y, - es->geometry.width, - es->geometry.height); + pixman_region32_intersect(&surface_overlap, &overlap, + &es->transform.boundingbox); es->overlapped = pixman_region32_not_empty(&surface_overlap); pixman_region32_fini(&surface_overlap); - pixman_region32_union_rect(&overlap, &overlap, - es->geometry.x, es->geometry.y, - es->geometry.width, - es->geometry.height); + pixman_region32_union(&overlap, &overlap, + &es->transform.boundingbox); } weston_output_set_cursor(output, ec->input_device); -- 2.7.4