Merge pull request #2200 from mucamaca/fix_transparency

Fix #1857 -> transparency in swaylock
This commit is contained in:
emersion 2018-07-04 11:34:01 +01:00 committed by GitHub
commit f414885b1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -30,6 +30,8 @@ void render_frame(struct swaylock_surface *surface) {
cairo_t *cairo = surface->current_buffer->cairo; cairo_t *cairo = surface->current_buffer->cairo;
cairo_identity_matrix(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) { if (state->args.mode == BACKGROUND_MODE_SOLID_COLOR || !surface->image) {
cairo_set_source_u32(cairo, state->args.color); cairo_set_source_u32(cairo, state->args.color);
cairo_paint(cairo); cairo_paint(cairo);
@ -37,6 +39,7 @@ void render_frame(struct swaylock_surface *surface) {
render_background_image(cairo, surface->image, render_background_image(cairo, surface->image,
state->args.mode, buffer_width, buffer_height); state->args.mode, buffer_width, buffer_height);
} }
cairo_restore(cairo);
cairo_identity_matrix(cairo); cairo_identity_matrix(cairo);
int arc_radius = ARC_RADIUS * surface->scale; int arc_radius = ARC_RADIUS * surface->scale;