1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-03-08 02:25:50 +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,30 +373,38 @@ Bool wIconChangeImageFile(WIcon *icon, char *file)
{ {
WScreen *scr = icon->core->screen_ptr; WScreen *scr = icon->core->screen_ptr;
char *path; char *path;
RImage *image = NULL;
int error = 0; int error = 0;
/* If no new image, don't do nothing */
if (!file) if (!file)
return True; return True;
/* Find the new image */
path = FindImage(wPreferences.icon_path, file);
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) { if (icon->file_image) {
RReleaseImage(icon->file_image); RReleaseImage(icon->file_image);
icon->file_image = NULL; icon->file_image = NULL;
} }
path = FindImage(wPreferences.icon_path, file); /* Set the new image */
if (path) { icon->file_image = image;
icon->file_image = get_rimage_from_file(scr, path, wPreferences.icon_size);
if (icon->file_image) {
icon->file = wstrdup(path); icon->file = wstrdup(path);
wIconUpdate(icon); wIconUpdate(icon);
} else { } else {
error = 1; error = 1;
} }
if (path)
wfree(path); wfree(path);
} else {
error = 1;
}
return !error; return !error;
} }