diff --git a/config/fonts.cfg.xft b/config/fonts.cfg.xft index eda516b2..2cbb3041 100644 --- a/config/fonts.cfg.xft +++ b/config/fonts.cfg.xft @@ -3,33 +3,33 @@ __E_CFG_VERSION 1 __FONTS __BGN -font-default "Sans-8:Bold" +font-default "xft:sans-8:bold" -font-border "Sans-8:Bold" -font-border-italic "Sans-8:Italic" -font-border-small "Sans-6" +font-border "xft:sans-8:bold" +font-border-italic "xft:sans-8:italic" +font-border-small "xft:sans-6" -font-coords "Sans-8:Bold" +font-coords "xft:sans-8:bold" -font-dialog "Sans-8" -font-dialog-hilite "Sans-8:Bold" -font-dialog-italic "Sans-8:Italic" +font-dialog "xft:sans-8" +font-dialog-hilite "xft:sans-8:bold" +font-dialog-italic "xft:sans-8:italic" -font-epplet "Sans-6" -font-epplet-small "Sans-6" -font-epplet-medium "Sans-8" -font-epplet-large "Sans-10" +font-epplet "xft:sans-6" +font-epplet-small "xft:sans-6" +font-epplet-medium "xft:sans-8" +font-epplet-large "xft:sans-10" -font-focus "Sans-8:Bold" +font-focus "xft:sans-8:bold" -font-iconbox "Sans-8:Bold" +font-iconbox "xft:sans-8:bold" -font-init "Sans-9:Bold" +font-init "xft:sans-9:bold" -font-menu "Sans-8" +font-menu "xft:sans-8" -font-pager "Sans-8:Bold" +font-pager "xft:sans-8:bold" -font-tooltip "Sans-8:Bold" +font-tooltip "xft:sans-8:bold" __END diff --git a/src/text.c b/src/text.c index 089aed08..7d353fb6 100644 --- a/src/text.c +++ b/src/text.c @@ -25,13 +25,12 @@ #include "eimage.h" #include "tclass.h" #include "xwin.h" -#ifndef USE_XFT -#undef FONT_TYPE_XFT -#define FONT_TYPE_XFT 0 -#endif -#if FONT_TYPE_XFT + +#ifdef USE_XFT #include #include +#else +#undef FONT_TYPE_XFT #endif #if FONT_TYPE_IFT @@ -428,14 +427,18 @@ _xft_Load(TextState * ts, int fallback __UNUSED__) { XftFont *font; FontCtxXft *fdc; + const char *name; - if (strchr(ts->fontname, '/')) + name = ts->fontname; + if (!strncmp(name, "xft:", 4)) + name += 4; + else if (strchr(name, '/')) return -1; - if (ts->fontname[0] == '-') - font = XftFontOpenXlfd(disp, VRoot.scr, ts->fontname); + if (name[0] == '-') + font = XftFontOpenXlfd(disp, VRoot.scr, name); else - font = XftFontOpenName(disp, VRoot.scr, ts->fontname); + font = XftFontOpenName(disp, VRoot.scr, name); if (!font) return -1; @@ -446,7 +449,7 @@ _xft_Load(TextState * ts, int fallback __UNUSED__) if (ftf == NULL) return -1; - Eprintf("Font %s family_name=%s style_name=%s\n", ts->fontname, + Eprintf("Font %s family_name=%s style_name=%s\n", name, ftf->family_name, ftf->style_name); XftUnlockFace(font); } @@ -508,6 +511,7 @@ _xft_FdcInit(TextState * ts, Win win, Drawable draw) FontCtxXft *fdc = (FontCtxXft *) ts->fdc; fdc->win = win; + fdc->draw = draw; fdc->xftd = XftDrawCreate(disp, draw, WinGetVisual(win), WinGetCmap(win)); if (!fdc->xftd) @@ -530,6 +534,7 @@ _xft_FdcSetDrawable(TextState * ts, unsigned long draw) if (fdc->draw == draw) return; + fdc->draw = draw; XftDrawChange(fdc->xftd, draw); }