update draw.c
This commit is contained in:
parent
b0dc641d20
commit
3a23d1c57d
|
@ -120,24 +120,23 @@ initfont(DC *dc, const char *fontstr) {
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
loadfont(DC *dc, const char *fontstr) {
|
loadfont(DC *dc, const char *fontstr) {
|
||||||
char *def, **missing;
|
char *def, **missing, **names;
|
||||||
int i, n;
|
int i, n = 1;
|
||||||
|
XFontStruct **xfonts;
|
||||||
|
|
||||||
if(!*fontstr)
|
if(!*fontstr)
|
||||||
return False;
|
return False;
|
||||||
if((dc->font.set = XCreateFontSet(dc->dpy, fontstr, &missing, &n, &def))) {
|
if((dc->font.set = XCreateFontSet(dc->dpy, fontstr, &missing, &n, &def)))
|
||||||
char **names;
|
|
||||||
XFontStruct **xfonts;
|
|
||||||
|
|
||||||
n = XFontsOfFontSet(dc->font.set, &xfonts, &names);
|
n = XFontsOfFontSet(dc->font.set, &xfonts, &names);
|
||||||
for(i = dc->font.ascent = dc->font.descent = 0; i < n; i++) {
|
else if((dc->font.xfont = XLoadQueryFont(dc->dpy, fontstr)))
|
||||||
dc->font.ascent = MAX(dc->font.ascent, xfonts[i]->ascent);
|
xfonts = &dc->font.xfont;
|
||||||
dc->font.descent = MAX(dc->font.descent, xfonts[i]->descent);
|
else
|
||||||
}
|
n = 0;
|
||||||
}
|
|
||||||
else if((dc->font.xfont = XLoadQueryFont(dc->dpy, fontstr))) {
|
for(i = 0; i < n; i++) {
|
||||||
dc->font.ascent = dc->font.xfont->ascent;
|
dc->font.ascent = MAX(dc->font.ascent, xfonts[i]->ascent);
|
||||||
dc->font.descent = dc->font.xfont->descent;
|
dc->font.descent = MAX(dc->font.descent, xfonts[i]->descent);
|
||||||
|
dc->font.width = MAX(dc->font.width, xfonts[i]->max_bounds.width);
|
||||||
}
|
}
|
||||||
if(missing)
|
if(missing)
|
||||||
XFreeStringList(missing);
|
XFreeStringList(missing);
|
||||||
|
|
|
@ -15,6 +15,7 @@ typedef struct {
|
||||||
int ascent;
|
int ascent;
|
||||||
int descent;
|
int descent;
|
||||||
int height;
|
int height;
|
||||||
|
int width;
|
||||||
XFontSet set;
|
XFontSet set;
|
||||||
XFontStruct *xfont;
|
XFontStruct *xfont;
|
||||||
} font;
|
} font;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user