mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-23 14:42:29 +01:00
wIconChangeImageFile change image only if found
This patch changes the behavior of wIconChangeImageFile. Before apply this patch the behavior was: The image (file_image) is set to NULL, then the function tried to find a new image. If the new image was not found, the variable file_image contains NULL when the function returns, and the return code was 1. With this patch the image is changed only if a new image is found.
This commit is contained in:
committed by
Carlos R. Mafra
parent
3d0223ded4
commit
5728b6436d
32
src/icon.c
32
src/icon.c
@@ -373,31 +373,39 @@ Bool wIconChangeImageFile(WIcon *icon, char *file)
|
||||
{
|
||||
WScreen *scr = icon->core->screen_ptr;
|
||||
char *path;
|
||||
RImage *image = NULL;
|
||||
int error = 0;
|
||||
|
||||
/* If no new image, don't do nothing */
|
||||
if (!file)
|
||||
return True;
|
||||
|
||||
if (icon->file_image) {
|
||||
RReleaseImage(icon->file_image);
|
||||
icon->file_image = NULL;
|
||||
}
|
||||
|
||||
/* Find the new image */
|
||||
path = FindImage(wPreferences.icon_path, file);
|
||||
if (path) {
|
||||
icon->file_image = get_rimage_from_file(scr, path, wPreferences.icon_size);
|
||||
if (path)
|
||||
image = get_rimage_from_file(scr, path, wPreferences.icon_size);
|
||||
else
|
||||
error = 1;
|
||||
|
||||
/* New image! */
|
||||
if (!error && image) {
|
||||
/* Remove the old one */
|
||||
if (icon->file_image) {
|
||||
icon->file = wstrdup(path);
|
||||
wIconUpdate(icon);
|
||||
} else {
|
||||
error = 1;
|
||||
RReleaseImage(icon->file_image);
|
||||
icon->file_image = NULL;
|
||||
}
|
||||
|
||||
wfree(path);
|
||||
/* Set the new image */
|
||||
icon->file_image = image;
|
||||
icon->file = wstrdup(path);
|
||||
wIconUpdate(icon);
|
||||
} else {
|
||||
error = 1;
|
||||
}
|
||||
|
||||
if (path)
|
||||
wfree(path);
|
||||
|
||||
return !error;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user