New helper function unset_icon_image()
authorRodolfo García Peñas (kix) <kix@kix.es>
Sat, 3 Nov 2012 18:53:54 +0000 (3 19:53 +0100)
committerCarlos R. Mafra <crmafra@gmail.com>
Sat, 3 Nov 2012 19:52:30 +0000 (3 19:52 +0000)
The new function unset_icon_image() removes the RImage and the
file path for a given icon.

src/icon.c

index 018333b..fce0a51 100644 (file)
@@ -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;