1
0
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:
Rodolfo García Peñas (kix)
2012-10-31 22:44:19 +01:00
committed by Carlos R. Mafra
parent 3d0223ded4
commit 5728b6436d

View File

@@ -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;
}