diff options
Diffstat (limited to 'swaylock/render.c')
-rw-r--r-- | swaylock/render.c | 5 |
1 files changed, 3 insertions, 2 deletions
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) { | |||
30 | cairo_t *cairo = surface->current_buffer->cairo; | 30 | cairo_t *cairo = surface->current_buffer->cairo; |
31 | cairo_identity_matrix(cairo); | 31 | cairo_identity_matrix(cairo); |
32 | 32 | ||
33 | cairo_save(cairo); | ||
34 | cairo_set_operator(cairo, CAIRO_OPERATOR_SOURCE); | ||
33 | if (state->args.mode == BACKGROUND_MODE_SOLID_COLOR || !surface->image) { | 35 | if (state->args.mode == BACKGROUND_MODE_SOLID_COLOR || !surface->image) { |
34 | cairo_set_source_u32(cairo, state->args.color); | 36 | cairo_set_source_u32(cairo, state->args.color); |
35 | cairo_set_operator (cairo, CAIRO_OPERATOR_SOURCE); | ||
36 | cairo_paint(cairo); | 37 | cairo_paint(cairo); |
37 | cairo_set_operator (cairo, CAIRO_OPERATOR_OVER); | ||
38 | } else { | 38 | } else { |
39 | render_background_image(cairo, surface->image, | 39 | render_background_image(cairo, surface->image, |
40 | state->args.mode, buffer_width, buffer_height); | 40 | state->args.mode, buffer_width, buffer_height); |
41 | } | 41 | } |
42 | cairo_restore(cairo); | ||
42 | cairo_identity_matrix(cairo); | 43 | cairo_identity_matrix(cairo); |
43 | 44 | ||
44 | int arc_radius = ARC_RADIUS * surface->scale; | 45 | int arc_radius = ARC_RADIUS * surface->scale; |