mirror of
https://gitlab.freedesktop.org/xorg/lib/libxcursor.git
synced 2026-04-23 09:50:46 +02:00
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:
parent
6816ed58e9
commit
e7272c8046
2 changed files with 21 additions and 4 deletions
21
src/file.c
21
src/file.c
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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_ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue