commit 046784b4c40cf21228f7dd6bcad202aea3c75633
parent 380974c56cf6b277ab9deca9e6dccedd31581f08
Author: Pandora <Pandora@techfo.xyz>
Date: Sat, 9 Dec 2017 00:38:50 -0500
potential fix to issue #45
Diffstat:
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/i3lock.c b/i3lock.c
@@ -1743,9 +1743,28 @@ int main(int argc, char *argv[]) {
cairo_set_source_surface(ctx, xcb_img, 0, 0);
cairo_paint(ctx);
+ blur_image_surface(blur_img, blur_sigma);
+ if (img) {
+ if (!tile) {
+ cairo_set_source_surface(ctx, img, 0, 0);
+ cairo_paint(ctx);
+ } else {
+ /* create a pattern and fill a rectangle as big as the screen */
+ cairo_pattern_t *pattern;
+ pattern = cairo_pattern_create_for_surface(img);
+ cairo_set_source(ctx, pattern);
+ cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
+ cairo_rectangle(ctx, 0, 0, last_resolution[0], last_resolution[1]);
+ cairo_fill(ctx);
+ cairo_pattern_destroy(pattern);
+ }
+ cairo_set_source_surface(ctx, img, 0, 0);
+ cairo_paint(ctx);
+ cairo_surface_destroy(img);
+ img = NULL;
+ }
cairo_destroy(ctx);
cairo_surface_destroy(xcb_img);
- blur_image_surface(blur_img, blur_sigma);
}
/* Pixmap on which the image is rendered to (if any) */
diff --git a/unlock_indicator.c b/unlock_indicator.c
@@ -310,8 +310,7 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
if (blur_img) {
cairo_set_source_surface(xcb_ctx, blur_img, 0, 0);
cairo_paint(xcb_ctx);
- }
- if (img) {
+ } else { // img can no longer be non-NULL if blur_img is not null
if (!tile) {
cairo_set_source_surface(xcb_ctx, img, 0, 0);
cairo_paint(xcb_ctx);