mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-05 15:48:05 +02:00
desktop-shell: background should be opaque
Toytoolkit does not support setting opaqueness for anything else than the immediate child widget of the frame widget. Backgrounds do not have frames, so we need to poke it in manually. This should allow Weston to paint the background without blending. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
parent
fedc527723
commit
9564c75163
1 changed files with 9 additions and 0 deletions
|
|
@ -636,6 +636,8 @@ background_draw(struct widget *widget, void *data)
|
|||
double sx, sy;
|
||||
struct rectangle allocation;
|
||||
int type = -1;
|
||||
struct display *display;
|
||||
struct wl_region *opaque;
|
||||
|
||||
surface = window_get_surface(background->window);
|
||||
|
||||
|
|
@ -682,6 +684,13 @@ background_draw(struct widget *widget, void *data)
|
|||
cairo_paint(cr);
|
||||
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);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue