desktop-shell: properly set background widget as opaque
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>
This commit is contained in:
committed by
Pekka Paalanen
parent
488b7cd0f0
commit
fb754a0a05
@@ -695,8 +695,6 @@ background_draw(struct widget *widget, void *data)
|
|||||||
double sx, sy, s;
|
double sx, sy, s;
|
||||||
double tx, ty;
|
double tx, ty;
|
||||||
struct rectangle allocation;
|
struct rectangle allocation;
|
||||||
struct display *display;
|
|
||||||
struct wl_region *opaque;
|
|
||||||
|
|
||||||
surface = window_get_surface(background->window);
|
surface = window_get_surface(background->window);
|
||||||
|
|
||||||
@@ -752,13 +750,6 @@ background_draw(struct widget *widget, void *data)
|
|||||||
cairo_destroy(cr);
|
cairo_destroy(cr);
|
||||||
cairo_surface_destroy(surface);
|
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;
|
background->painted = 1;
|
||||||
check_desktop_ready(background->window);
|
check_desktop_ready(background->window);
|
||||||
}
|
}
|
||||||
@@ -1056,6 +1047,7 @@ background_create(struct desktop *desktop)
|
|||||||
background->widget = window_add_widget(background->window, background);
|
background->widget = window_add_widget(background->window, background);
|
||||||
window_set_user_data(background->window, background);
|
window_set_user_data(background->window, background);
|
||||||
widget_set_redraw_handler(background->widget, background_draw);
|
widget_set_redraw_handler(background->widget, background_draw);
|
||||||
|
widget_set_transparent(background->widget, 0);
|
||||||
window_set_preferred_format(background->window,
|
window_set_preferred_format(background->window,
|
||||||
WINDOW_PREFERRED_FORMAT_RGB565);
|
WINDOW_PREFERRED_FORMAT_RGB565);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user