[PATCH weston] simple-egl: Reset opaque region if not fullscreen.
Ander Conselvan de Oliveira
conselvan2 at gmail.com
Mon Nov 19 04:45:23 PST 2012
On 11/17/2012 12:42 PM, Scott Moreau wrote:
> If simple-egl is toggled fullscreen, the opqaue region is set for the surface
> but never removed after exiting fullscreen. This patch resets the opaque region
> to 0 if the surface is not fullscreen and -o was not passed. This fixes the
> problem introduced sometime since 6a615d2621, when this was last fixed.
The thing was that before we relied on surface.attach to reset the
opaque region but after the introduction of surface.commit that does not
happen anymore.
> ---
>
> I noticed this was broken again. This patch resets the opaque region after
> fullscreen toggle so the surface is restored to its original alpha.
>
> clients/simple-egl.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/clients/simple-egl.c b/clients/simple-egl.c
> index 2c9a0a0..c1d701a 100644
> --- a/clients/simple-egl.c
> +++ b/clients/simple-egl.c
> @@ -413,6 +413,11 @@ redraw(void *data, struct wl_callback *callback, uint32_t time)
> window->geometry.height);
> wl_surface_set_opaque_region(window->surface, region);
> wl_region_destroy(region);
> + } else {
> + region = wl_compositor_create_region(window->display->compositor);
> + wl_region_add(region, 0, 0, 0, 0);
This wl_region_add() is unnecessary, a new region is already empty.
Cheers,
Ander
> + wl_surface_set_opaque_region(window->surface, region);
> + wl_region_destroy(region);
> }
>
> window->callback = wl_surface_frame(window->surface);
>
More information about the wayland-devel
mailing list