--- magicpoint-1.11b/draw.c.64bit 2006-10-21 13:29:24.000000000 +0200 +++ magicpoint-1.11b/draw.c 2006-10-21 13:27:28.000000000 +0200 @@ -4884,8 +4884,8 @@ char *registry; { char *xfont; - static XftFont *last_xftfont; - static char lastfont[100]; + static XftFont *last_xftfont = NULL; + static char lastfont[100] = ""; static int lastsize = 0; XftFont *xftfont; char *p, *p2; @@ -4934,12 +4934,12 @@ XFT_FAMILY, XftTypeString, font, XFT_ENCODING, XftTypeString, registry, XFT_STYLE, XftTypeString, style, - XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, 0); + XFT_PIXEL_SIZE, XftTypeDouble, (double)csize, NULL); } else { xftfont = XftFontOpen(display, screen, XFT_FAMILY, XftTypeString, font, XFT_ENCODING, XftTypeString, registry, - XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, 0); + XFT_PIXEL_SIZE, XftTypeDouble, (double)csize, NULL); } if (xftfont == 0) { free(xfont); @@ -4950,6 +4950,9 @@ fprintf(stderr, "using xftfont [%s] size: %d\n", lastfont, csize); } + if (last_xftfont) + XftFontClose(display, last_xftfont); + lastsize = csize; last_xftfont = xftfont; free(xfont);