From 484042efd8a7f3dd85a763f9ecdda01e5a798693 Mon Sep 17 00:00:00 2001 From: Bor Grošelj Simić Date: Wed, 4 Jul 2018 12:09:05 +0200 Subject: Fix transparency in background images in swaylock --- swaylock/render.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'swaylock') diff --git a/swaylock/render.c b/swaylock/render.c index 80377b2a..ea23d0d8 100644 --- a/swaylock/render.c +++ b/swaylock/render.c @@ -30,15 +30,16 @@ void render_frame(struct swaylock_surface *surface) { cairo_t *cairo = surface->current_buffer->cairo; cairo_identity_matrix(cairo); + cairo_save(cairo); + cairo_set_operator(cairo, CAIRO_OPERATOR_SOURCE); if (state->args.mode == BACKGROUND_MODE_SOLID_COLOR || !surface->image) { cairo_set_source_u32(cairo, state->args.color); - cairo_set_operator (cairo, CAIRO_OPERATOR_SOURCE); cairo_paint(cairo); - cairo_set_operator (cairo, CAIRO_OPERATOR_OVER); } else { render_background_image(cairo, surface->image, state->args.mode, buffer_width, buffer_height); } + cairo_restore(cairo); cairo_identity_matrix(cairo); int arc_radius = ARC_RADIUS * surface->scale; -- cgit v1.2.3-54-g00ecf