restore behavior of image-loading, provide resizing via internal function

Signed-off-by: Thomas E. Dickey <dickey@invisible-island.net>
This commit is contained in:
Thomas E. Dickey 2024-10-29 16:10:51 -04:00
parent 6816ed58e9
commit e7272c8046
No known key found for this signature in database
GPG key ID: CC2AF4472167BE03
2 changed files with 21 additions and 4 deletions

View file

@ -1,4 +1,5 @@
/*
* Copyright © 2024 Thomas E. Dickey
* Copyright © 2002 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
@ -653,8 +654,8 @@ _XcursorResizeImage (XcursorImage *src, int size)
return dest;
}
XcursorImage *
XcursorXcFileLoadImage (XcursorFile *file, int size)
static XcursorImage *
_XcursorXcFileLoadImage (XcursorFile *file, int size, XcursorBool resize)
{
XcursorFileHeader *fileHeader;
XcursorDim bestSize;
@ -676,7 +677,7 @@ XcursorXcFileLoadImage (XcursorFile *file, int size)
image = _XcursorReadImage (file, fileHeader, toc);
_XcursorFileHeaderDestroy (fileHeader);
if (image->size != (XcursorDim) size)
if (resize && (image->size != (XcursorDim) size))
{
XcursorImage *resized_image = _XcursorResizeImage (image, size);
XcursorImageDestroy (image);
@ -688,6 +689,12 @@ XcursorXcFileLoadImage (XcursorFile *file, int size)
XcursorImages *
XcursorXcFileLoadImages (XcursorFile *file, int size)
{
return _XcursorXcFileLoadImages (file, size, XcursorFalse);
}
XcursorImages *
_XcursorXcFileLoadImages (XcursorFile *file, int size, XcursorBool resize)
{
XcursorFileHeader *fileHeader;
XcursorDim bestSize;
@ -721,7 +728,7 @@ XcursorXcFileLoadImages (XcursorFile *file, int size)
image = _XcursorReadImage (file, fileHeader, toc);
if (!image)
break;
if (image->size != (XcursorDim) size)
if (resize && (image->size != (XcursorDim) size))
{
XcursorImage *resized_image = _XcursorResizeImage (image, size);
image = resized_image;
@ -740,6 +747,12 @@ XcursorXcFileLoadImages (XcursorFile *file, int size)
return images;
}
XcursorImage *
XcursorXcFileLoadImage (XcursorFile *file, int size)
{
return _XcursorXcFileLoadImage (file, size, XcursorFalse);
}
XcursorImages *
XcursorXcFileLoadAllImages (XcursorFile *file)
{

View file

@ -112,4 +112,8 @@ _XcursorCreateGlyphCursor(Display *dpy,
Cursor
_XcursorCreateFontCursor (Display *dpy, unsigned int shape);
/* provide for XCURSOR_RESIZED */
XcursorImages *
_XcursorXcFileLoadImages (XcursorFile *file, int size, XcursorBool resize);
#endif /* _XCURSORINT_H_ */