wIconCreate: get the icon file name first
authorRodolfo García Peñas (kix) <kix@kix.es>
Mon, 1 Oct 2012 21:19:01 +0000 (1 23:19 +0200)
committerCarlos R. Mafra <crmafra@gmail.com>
Sat, 6 Oct 2012 14:37:58 +0000 (6 15:37 +0100)
The function wIconCreate search the icon image calling wDefaultGetIconFile.
wDefaultGetIconFile search first the icon file name and then search the
image using the icon file name. wDefaultGetIconFile returns the icon image
to wIconCreate, then wIconCreate search the file name (again).

Is better that wIconCreate search first the file name, and then get
the image using the file name.

src/icon.c

index a940123..efcc2b5 100644 (file)
@@ -101,7 +101,7 @@ INLINE static void getSize(Drawable d, unsigned int *w, unsigned int *h, unsigne
        XGetGeometry(dpy, d, &rjunk, &xjunk, &yjunk, w, h, &bjunk, dep);
 }
 
-WIcon *wIconCreate(WWindow * wwin)
+WIcon *wIconCreate(WWindow *wwin)
 {
        WScreen *scr = wwin->screen_ptr;
        WIcon *icon;
@@ -126,12 +126,13 @@ WIcon *wIconCreate(WWindow * wwin)
 #else
        icon->show_title = 1;
 #endif
-       icon->file_image = wDefaultGetImage(scr, wwin->wm_instance, wwin->wm_class, wPreferences.icon_size);
 
        /* Get the application icon, default included */
-       file = wDefaultGetIconFile(wwin->wm_instance, wwin->wm_class, True);
-       if (file)
+       file = get_default_icon_filename(scr, wwin->wm_instance, wwin->wm_class, NULL, True);
+       if (file) {
                icon->file = wstrdup(file);
+               icon->file_image = get_default_icon_rimage(scr, icon->file, wPreferences.icon_size);
+       }
 
        icon->icon_name = wNETWMGetIconName(wwin->client_win);
        if (icon->icon_name)
@@ -206,6 +207,10 @@ static WIcon *wIconCreateCore(WScreen *scr, int coord_x, int coord_y)
        icon->core->stacking->window_level = NORMAL_ICON_LEVEL;
        icon->core->stacking->child_of = NULL;
 
+       /* Icon image */
+       icon->file = NULL;
+       icon->file_image = NULL;
+
        return icon;
 }