ensure that the italic font has the same weight as the normal font

The specified font[] pattern need not have a medium weight. It could be
specified as a number too or have a different weight other than medium.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
dev
joe9 2013-02-18 12:31:29 -05:00 committed by Christoph Lohmann
parent 0e738c3d72
commit e5295629cd
1 changed files with 7 additions and 9 deletions

16
st.c
View File

@ -2444,20 +2444,18 @@ xloadfonts(char *fontstr, int fontsize) {
xw.ch = dc.font.height;
FcPatternDel(pattern, FC_SLANT);
FcPatternDel(pattern, FC_WEIGHT);
FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
if(xloadfont(&dc.bfont, pattern))
FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC);
if(xloadfont(&dc.ifont, pattern))
die("st: can't open font %s\n", fontstr);
FcPatternDel(pattern, FC_SLANT);
FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC);
FcPatternDel(pattern, FC_WEIGHT);
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
if(xloadfont(&dc.ibfont, pattern))
die("st: can't open font %s\n", fontstr);
FcPatternDel(pattern, FC_WEIGHT);
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_MEDIUM);
if(xloadfont(&dc.ifont, pattern))
FcPatternDel(pattern, FC_SLANT);
FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
if(xloadfont(&dc.bfont, pattern))
die("st: can't open font %s\n", fontstr);
FcPatternDestroy(pattern);