forked from e16/e16
1
0
Fork 0

Xft font is now selected using prefix "xft:".

Fix valgrind complaint (drawable caching).


SVN revision: 31210
This commit is contained in:
Kim Woelders 2007-08-07 15:21:49 +00:00
parent ac3c5764cf
commit 204496d8c5
2 changed files with 33 additions and 28 deletions

View File

@ -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

View File

@ -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 <X11/extensions/Xrender.h>
#include <X11/Xft/Xft.h>
#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);
}