Xinqi Bao's Git
projects
/
dmenu.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
add ^G escape keybinding
[dmenu.git]
/
draw.c
diff --git
a/draw.c
b/draw.c
index
f952b53
..
76f0c54
100644
(file)
--- a/
draw.c
+++ b/
draw.c
@@
-96,7
+96,7
@@
initdc(void) {
DC *dc;
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
DC *dc;
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
- fp
rintf(stderr, "no locale support\n"
);
+ fp
uts("no locale support\n", stderr
);
if(!(dc = calloc(1, sizeof *dc)))
eprintf("cannot malloc %u bytes:", sizeof *dc);
if(!(dc->dpy = XOpenDisplay(NULL)))
if(!(dc = calloc(1, sizeof *dc)))
eprintf("cannot malloc %u bytes:", sizeof *dc);
if(!(dc->dpy = XOpenDisplay(NULL)))
@@
-120,28
+120,28
@@
initfont(DC *dc, const char *fontstr) {
Bool
loadfont(DC *dc, const char *fontstr) {
Bool
loadfont(DC *dc, const char *fontstr) {
- char *def, **missing;
+ char *def, **missing
, **names
;
int i, n;
int i, n;
+ XFontStruct **xfonts;
if(!*fontstr)
return False;
if((dc->font.set = XCreateFontSet(dc->dpy, fontstr, &missing, &n, &def))) {
if(!*fontstr)
return False;
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++) {
- dc->font.ascent
= MAX(dc->font.ascent,
xfonts[i]->ascent);
+ for(i = 0; i < n; i++) {
+ dc->font.ascent
= MAX(dc->font.ascent,
xfonts[i]->ascent);
dc->font.descent = MAX(dc->font.descent, xfonts[i]->descent);
dc->font.descent = MAX(dc->font.descent, xfonts[i]->descent);
+ dc->font.width = MAX(dc->font.width, xfonts[i]->max_bounds.width);
}
}
else if((dc->font.xfont = XLoadQueryFont(dc->dpy, fontstr))) {
}
}
else if((dc->font.xfont = XLoadQueryFont(dc->dpy, fontstr))) {
- dc->font.ascent = dc->font.xfont->ascent;
+ dc->font.ascent
= dc->font.xfont->ascent;
dc->font.descent = dc->font.xfont->descent;
dc->font.descent = dc->font.xfont->descent;
+ dc->font.width = dc->font.xfont->max_bounds.width;
}
if(missing)
XFreeStringList(missing);
}
if(missing)
XFreeStringList(missing);
- return
(dc->font.set || dc->font.xfont)
;
+ return
dc->font.set || dc->font.xfont
;
}
void
}
void
@@
-154,10
+154,10
@@
resizedc(DC *dc, unsigned int w, unsigned int h) {
if(dc->canvas)
XFreePixmap(dc->dpy, dc->canvas);
if(dc->canvas)
XFreePixmap(dc->dpy, dc->canvas);
- dc->canvas = XCreatePixmap(dc->dpy, DefaultRootWindow(dc->dpy), w, h,
- DefaultDepth(dc->dpy, DefaultScreen(dc->dpy)));
dc->w = w;
dc->h = h;
dc->w = w;
dc->h = h;
+ dc->canvas = XCreatePixmap(dc->dpy, DefaultRootWindow(dc->dpy), w, h,
+ DefaultDepth(dc->dpy, DefaultScreen(dc->dpy)));
}
int
}
int