From bec568f002f5080edd866cd1a0cb64c21a18f510 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 17 Mar 2026 09:13:10 -0500 Subject: [PATCH] compositor: Update transforms before opacity checks It makes more sense to update the transform than to bail. These functions are sort of hints - they have to be correct when true, so the previous code isn't really buggy. But they make more sense at a glance this way. Signed-off-by: Derek Foreman --- libweston/compositor.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index 0606fd43d..af002fe13 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -2317,15 +2317,14 @@ weston_view_is_opaque(struct weston_view *ev, pixman_region32_t *region) pixman_region32_t r; bool ret = false; + weston_view_update_transform(ev); + if (ev->alpha < 1.0) return false; if (ev->surface->is_opaque) return true; - if (ev->transform.dirty) - return false; - pixman_region32_init(&r); pixman_region32_subtract(&r, region, &ev->transform.opaque); @@ -2340,15 +2339,14 @@ weston_view_is_opaque(struct weston_view *ev, pixman_region32_t *region) static bool weston_view_is_fully_blended(struct weston_view *ev, pixman_region32_t *region) { + weston_view_update_transform(ev); + if (ev->alpha < 1.0) return true; if (ev->surface->is_opaque) return false; - if (ev->transform.dirty) - return false; - return !pixman_region32_not_empty(&ev->transform.opaque); }