41a42 > #include /* XFT */ 111c112 < XFontStruct *xfont; --- > XftFont *xfont; 488,491c489 < if(dc.font.set) < XFreeFontSet(dpy, dc.font.set); < else < XFreeFont(dpy, dc.font.xfont); --- > 794a793,808 > > /* > * Color assignment and conversion to Xft's coloring > */ > > XftColor color; > color.color.red = ((col[invert ? ColBG : ColFG] & 0xFF0000) >> 16 )* 0x101; > color.color.green = ((col[invert ? ColBG : ColFG] & 0x00FF00) >> 8 )* 0x101; > color.color.blue = ((col[invert ? ColBG : ColFG] & 0x0000FF) )* 0x101; > color.color.alpha = 0xFFFF; > color.pixel = 0xFFFFFF00; > Colormap cmap = DefaultColormap(dpy, screen); > > XftColorAllocValue(dpy, DefaultVisual(dpy, screen), cmap, &color.color, &color); > XftDraw *draw = XftDrawCreate(dpy, dc.drawable, DefaultVisual(dpy, screen), cmap); > 808,812c822,825 < XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]); < if(dc.font.set) < XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); < else < XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); --- > > XftDrawStringUtf8(draw, &color, dc.font.xfont, x, y, (XftChar8 *)buf, len); > > free(draw); 1060,1061c1073,1074 < if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr)) < && !(dc.font.xfont = XLoadQueryFont(dpy, "fixed"))) --- > if(!(dc.font.xfont = XftFontOpenXlfd(dpy,screen, fontstr)) > && !(dc.font.xfont = XftFontOpenXlfd(dpy,screen, "fixed"))) 1624,1625d1636 < if(!dc.font.set) < XSetFont(dpy, dc.gc, dc.font.xfont->fid); 1695a1707 > XGlyphInfo ext; 1701c1713,1715 < return XTextWidth(dc.font.xfont, text, len); --- > > XftTextExtentsUtf8(dpy, dc.font.xfont, (XftChar8 *)text, len, &ext); > return ext.xOff;