From 2ff138f311a8c7857088064574bf19dd861affce Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20=28kix=29?= Date: Sat, 3 Nov 2012 19:53:54 +0100 Subject: [PATCH] New helper function unset_icon_image() The new function unset_icon_image() removes the RImage and the file path for a given icon. --- src/icon.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/icon.c b/src/icon.c index 018333b6..fce0a518 100644 --- a/src/icon.c +++ b/src/icon.c @@ -66,6 +66,7 @@ static void get_pixmap_icon_from_user_icon(WIcon *icon); static void get_pixmap_icon_from_default_icon(WIcon *icon); static void icon_update_pixmap(WIcon *icon, RImage *image); +static void unset_icon_image(WIcon *icon); static RImage *get_default_image(WScreen *scr); /****** Notification Observers ******/ @@ -251,11 +252,7 @@ void wIconDestroy(WIcon * icon) if (icon->pixmap) XFreePixmap(dpy, icon->pixmap); - if (icon->file) - wfree(icon->file); - - if (icon->file_image != NULL) - RReleaseImage(icon->file_image); + unset_icon_image(icon); wCoreDestroy(icon->core); wfree(icon); @@ -390,10 +387,7 @@ Bool wIconChangeImageFile(WIcon *icon, char *file) /* New image! */ if (!error && image) { /* Remove the old one */ - if (icon->file_image) { - RReleaseImage(icon->file_image); - icon->file_image = NULL; - } + unset_icon_image(icon); /* Set the new image */ icon->file_image = image; @@ -585,6 +579,15 @@ void wIconSelect(WIcon * icon) } } +static void unset_icon_image(WIcon *icon) +{ + if (icon->file) + wfree(icon->file); + + if (icon->file_image) + RReleaseImage(icon->file_image); +} + void wIconUpdate(WIcon *icon) { WScreen *scr = icon->core->screen_ptr; -- 2.11.4.GIT