compositor-drm: Check surface's outputs when assigning overlays
authorAnder Conselvan de Oliveira <conselvan2@gmail.com>
Tue, 26 Jun 2012 14:09:12 +0000 (17:09 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 26 Jun 2012 14:21:49 +0000 (10:21 -0400)
Check if the output passed to drm_output_prepare_overlay_surface() does
actually contain the surface and fail if it doesn't. Also fail if a
surface spans multiple outputs since clearing the damage will cause the
portion that is not in an overlay to not be updated at all.

src/compositor-drm.c

index 42d971f..5543462 100644 (file)
@@ -530,6 +530,9 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base,
        if (c->sprites_are_broken)
                return -1;
 
+       if (es->output_mask != (1u << output_base->id))
+               return -1;
+
        if (surface_is_primary(ec, es))
                return -1;