diff --git a/swaylock/render.c b/swaylock/render.c index 2032ddcf3..ea23d0d87 100644 --- a/swaylock/render.c +++ b/swaylock/render.c @@ -30,6 +30,8 @@ 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_paint(cairo); @@ -37,6 +39,7 @@ void render_frame(struct swaylock_surface *surface) { 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;