Split get_pixmap_icon_from_default_icon() into two
authorRodolfo García Peñas (kix) <kix@kix.es>
Sat, 3 Nov 2012 18:53:56 +0000 (3 19:53 +0100)
committerCarlos R. Mafra <crmafra@gmail.com>
Sun, 4 Nov 2012 00:26:01 +0000 (4 00:26 +0000)
The function get_pixmap_icon_from_default_icon() is splitted in two
functions now:

1. get_rimage_icon_from_default_icon, set the rimage at icon->image
   The code comes from the function get_pixmap_icon_from_default_icon()
2. The get_pixmap_icon_from_default_icon(), but now only converts
   the icon->file_image in icon->pixmap

src/icon.c

index fce0a51..2e0f9b0 100644 (file)
@@ -64,6 +64,7 @@ static void get_pixmap_icon_from_icon_win(WIcon *icon);
 static int get_pixmap_icon_from_wm_hints(WIcon *icon);
 static void get_pixmap_icon_from_user_icon(WIcon *icon);
 static void get_pixmap_icon_from_default_icon(WIcon *icon);
+static void get_rimage_icon_from_default_icon(WIcon *icon);
 
 static void icon_update_pixmap(WIcon *icon, RImage *image);
 static void unset_icon_image(WIcon *icon);
@@ -638,7 +639,7 @@ static void get_pixmap_icon_from_user_icon(WIcon *icon)
        get_pixmap_icon_from_default_icon(icon);
 }
 
-static void get_pixmap_icon_from_default_icon(WIcon *icon)
+static void get_rimage_icon_from_default_icon(WIcon *icon)
 {
        WScreen *scr = icon->core->screen_ptr;
 
@@ -646,8 +647,21 @@ static void get_pixmap_icon_from_default_icon(WIcon *icon)
        if (!scr->def_icon_rimage)
                scr->def_icon_rimage = get_default_image(scr);
 
+       /* Remove the icon image */
+       unset_icon_image(icon);
+
+       /* Set the new icon image */
+       icon->file = NULL;
+       icon->file_image = RRetainImage(scr->def_icon_rimage);
+}
+
+static void get_pixmap_icon_from_default_icon(WIcon *icon)
+{
+       /* Update icon->file image */
+       get_rimage_icon_from_default_icon(icon);
+
        /* Now, create the pixmap using the default (saved) image */
-       icon_update_pixmap(icon, scr->def_icon_rimage);
+       icon_update_pixmap(icon, icon->file_image);
 }
 
 /* This function creates the RImage using the default icon */