summaryrefslogtreecommitdiffstats
path: root/swaylock
diff options
context:
space:
mode:
authorLibravatar Bor Grošelj Simić <bor.groseljsimic@telemach.net>2018-07-04 12:09:05 +0200
committerLibravatar Bor Grošelj Simić <bor.groseljsimic@telemach.net>2018-07-04 12:09:05 +0200
commit484042efd8a7f3dd85a763f9ecdda01e5a798693 (patch)
tree8c0acb61537bc4ab2a88c1790afb35f505733407 /swaylock
parentFix #1857 (diff)
downloadsway-484042efd8a7f3dd85a763f9ecdda01e5a798693.tar.gz
sway-484042efd8a7f3dd85a763f9ecdda01e5a798693.tar.zst
sway-484042efd8a7f3dd85a763f9ecdda01e5a798693.zip
Fix transparency in background images in swaylock
Diffstat (limited to 'swaylock')
-rw-r--r--swaylock/render.c5
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;