From: "Rodolfo García Peñas (kix)" <[email protected]>
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 018333b..fce0a51 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;
--
1.7.10.4
--
To unsubscribe, send mail to [email protected].