kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=ae3d501f93ef1e9fc71e5fd03bc299fcbdf7edff
commit ae3d501f93ef1e9fc71e5fd03bc299fcbdf7edff Author: Kim Woelders <k...@woelders.dk> Date: Tue Dec 8 16:52:44 2020 +0100 XPM loader: Get transparency right when doing header-only loading We have to parse the colormap too to figure that out. --- src/modules/loaders/loader_xpm.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/modules/loaders/loader_xpm.c b/src/modules/loaders/loader_xpm.c index 86ccad7..727addb 100644 --- a/src/modules/loaders/loader_xpm.c +++ b/src/modules/loaders/loader_xpm.c @@ -234,15 +234,6 @@ load2(ImlibImage * im, int load_data) if (!cmap) goto quit; - if (!load_data) - { - rc = LOAD_SUCCESS; - goto quit; - } - - ptr = __imlib_AllocateData(im); - if (!ptr) - goto quit; pixels = w * h; j = 0; @@ -344,6 +335,21 @@ load2(ImlibImage * im, int load_data) else qsort(cmap, ncolors, sizeof(cmap_t), xpm_cmap_sort); context++; + + if (transp >= 0) + SET_FLAG(im->flags, F_HAS_ALPHA); + else + UNSET_FLAG(im->flags, F_HAS_ALPHA); + + if (!load_data) + { + rc = LOAD_SUCCESS; + goto quit; + } + + ptr = __imlib_AllocateData(im); + if (!ptr) + goto quit; } } else @@ -439,11 +445,6 @@ load2(ImlibImage * im, int load_data) im->data[count] = cmap[0].pixel; } - if (transp >= 0) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); - rc = LOAD_SUCCESS; quit: --