diff --git a/libweston/pixman-renderer.c b/libweston/pixman-renderer.c index af9e3e334..a550cd87e 100644 --- a/libweston/pixman-renderer.c +++ b/libweston/pixman-renderer.c @@ -394,7 +394,6 @@ draw_node_source_clipped(struct weston_paint_node *pnode, { struct weston_surface *surface = pnode->surface; struct weston_output *output = pnode->output; - struct weston_view *view = pnode->view; pixman_region32_t surf_region; pixman_region32_t buffer_region; pixman_region32_t repaint_output; @@ -404,11 +403,10 @@ draw_node_source_clipped(struct weston_paint_node *pnode, * opaque separately has no benefit. */ - pixman_region32_init_rect(&surf_region, 0, 0, - surface->width, surface->height); - if (view->geometry.scissor_enabled) - pixman_region32_intersect(&surf_region, &surf_region, - &view->geometry.scissor); + pixman_region32_init(&surf_region); + pixman_region32_union(&surf_region, + &pnode->surface_opaque, + &pnode->surface_blend); pixman_region32_init(&buffer_region); weston_surface_to_buffer_region(surface, &surf_region, &buffer_region);