rem: GC gc = panel->scr->draw_gc; GC copygc = panel->scr->copy_gc;
add: WScreen *scr = panel->scr; GC gc = scr->draw_gc; GC copygc = scr->copy_gc;
context: drawIconProc(WMList *lPtr, int index, Drawable d, char *text, int state,             WMRect *rect){    IconPanel *panel = WMGetHangedData(lPtr);    GC gc = panel->scr->draw_gc;    GC copygc = panel->scr->copy_gc;    char *file, *dirfile;    WMPixmap *pixmap;    WMColor *black, *white, *gray, *back;    WMSize size;    WMScreen *wmscr = WMWidgetScreen(panel->win);    RColor color;    int x, y, width, height, len;    if(!panel->preview) return;    x = rect->pos.x;    y = rect->pos.y;    width = rect->size.width;    height = rect->size.height;    black = WMBlackColor(wmscr);    white = WMWhiteColor(wmscr);    gray = WMGrayColor(wmscr);    back = (state & WLDSSelected) ? white : gray;    dirfile = wexpandpath(WMGetListSelectedItem(panel->dirList)->text);    len = strlen(dirfile)+strlen(text)+4;    file = wmalloc(len);    snprintf(file, len, "%s/%s", dirfile, text);    wfree(dirfile);    color.red = WMRedComponentOfColor(back) >> 8;    color.green = WMGreenComponentOfColor(back) >> 8;    color.blue = WMBlueComponentOfColor(back) >> 8;    color.alpha = WMGetColorAlpha(back) >> 8;    pixmap = WMCreateBlendedPixmapFromFile(wmscr, file, &color);    wfree(file);    if (!pixmap) {        /*WMRemoveListItem(lPtr, index);*/        WMReleaseColor(black);        WMReleaseColor(white);        WMReleaseColor(gray);        return;    }    XFillRectangle(dpy, d, WMColorGC(back), x, y, width, height);    XSetClipMask(dpy, gc, None);    /*XDrawRectangle(dpy, d, WMColorGC(white), x+5, y+5, width-10, 54);*/    XDrawLine(dpy, d, WMColorGC(white), x, y+height-1, x+width, y+height-1);    size = WMGetPixmapSize(pixmap);    XSetClipMask(dpy, copygc, WMGetPixmapMaskXID(pixmap));    XSetClipOrigin(dpy, copygc, x + (width-size.width)/2, y+2);    XCopyArea(dpy, WMGetPixmapXID(pixmap), d, copygc, 0, 0,	      size.width>100?100:size.width, size.height>64?64:size.height,	      x + (width-size.width)/2, y+2);    {        int i,j;	int fheight = WMFontHeight(panel->normalfont);	int tlen = strlen(text);	int twidth = WMWidthOfString(panel->normalfont, text, tlen);	int ofx, ofy;	ofx = x + (width - twidth)/2;	ofy = y + 64 - fheight;        for(i=-1;i<2;i++)	    for(j=-1;j<2;j++)                WMDrawString(wmscr, d, white, panel->normalfont,                             ofx+i, ofy+j, text, tlen);        WMDrawString(wmscr, d, black, panel->normalfont, ofx, ofy,                     text, tlen);    }    WMReleasePixmap(pixmap);    /* I hope it is better to do not use cache / on my box it is fast nuff */    XFlush(dpy);    WMReleaseColor(black);    WMReleaseColor(white);    WMReleaseColor(gray);}