From 173edae4bf72e01b0dada41a406d34f976b1fc28 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Wed, 19 Jul 2023 18:11:08 +0200 Subject: [PATCH] image: Fix preservation of alpha chanel flag in imlib_clone_image() https://git.enlightenment.org/old/legacy-imlib2/issues/17: As per subject, the imlib_clone_image() function no longer preserves the alpha channel value since imlib2 1.10.0. This bug report was initially filed by Niko Tyni in Debian's bug tracker. If you follow the subsequent link you will also find a test program that demonstrates the regression. https://bugs.debian.org/1041406 This upstream change is most likely the root cause of the problem b39d33c800 It looks like an oversight where other functions were adapted to the new alpha channel implementation, but imlib_clone_image() remains unchanged and only copies the flags and not the new alpha byte. --- src/lib/api.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/api.c b/src/lib/api.c index 2496527..d27658d 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -1014,6 +1014,7 @@ imlib_clone_image(void) return NULL; memcpy(im->data, im_old->data, im->w * im->h * sizeof(uint32_t)); + im->has_alpha = im_old->has_alpha; im->flags = im_old->flags; IM_FLAG_SET(im, F_UNCACHEABLE); im->moddate = im_old->moddate;