desktop-shell: properly set background widget as opaque
authorArnaud Vrac <avrac@freebox.fr>
Mon, 25 Aug 2014 18:56:49 +0000 (20:56 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 28 Aug 2014 10:41:00 +0000 (13:41 +0300)
Toytoolkit resets the opaque region which was set manually using the
wayland protocol directly, so use the widget API instead.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
clients/desktop-shell.c

index db4a1fd..961a9b2 100644 (file)
@@ -695,8 +695,6 @@ background_draw(struct widget *widget, void *data)
        double sx, sy, s;
        double tx, ty;
        struct rectangle allocation;
-       struct display *display;
-       struct wl_region *opaque;
 
        surface = window_get_surface(background->window);
 
@@ -752,13 +750,6 @@ background_draw(struct widget *widget, void *data)
        cairo_destroy(cr);
        cairo_surface_destroy(surface);
 
-       display = window_get_display(background->window);
-       opaque = wl_compositor_create_region(display_get_compositor(display));
-       wl_region_add(opaque, allocation.x, allocation.y,
-                     allocation.width, allocation.height);
-       wl_surface_set_opaque_region(window_get_wl_surface(background->window), opaque);
-       wl_region_destroy(opaque);
-
        background->painted = 1;
        check_desktop_ready(background->window);
 }
@@ -1056,6 +1047,7 @@ background_create(struct desktop *desktop)
        background->widget = window_add_widget(background->window, background);
        window_set_user_data(background->window, background);
        widget_set_redraw_handler(background->widget, background_draw);
+       widget_set_transparent(background->widget, 0);
        window_set_preferred_format(background->window,
                                    WINDOW_PREFERRED_FORMAT_RGB565);