X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=spectrwm.c;h=e976c4b7a4b919a91faa0d3e3f16be90118f1e99;hb=2a8cbd9a9ea72ee37be2fcbe40bea8d9695975f6;hp=22e0f060ee2043fbccf61fffd20ec51705463ff7;hpb=d708e9e9feeada0be52fde1bcaba7175edc235a6;p=spectrwm.git diff --git a/spectrwm.c b/spectrwm.c index 22e0f06..e976c4b 100644 --- a/spectrwm.c +++ b/spectrwm.c @@ -1394,7 +1394,8 @@ bar_print(struct swm_region *r, const char *s) DefaultVisual(display, r->s->idx), DefaultColormap(display, r->s->idx)); - XftDrawStringUtf8(draw, &bar_font_color, bar_font, x, bar_font->height, + XftDrawStringUtf8(draw, &bar_font_color, bar_font, x, + (HEIGHT(r->bar) + bar_font->height) / 2 - bar_font->descent, (FcChar8 *)s, len); XftDrawDestroy(draw); @@ -1866,7 +1867,8 @@ bar_refresh(void) void bar_setup(struct swm_region *r) { - char *font; + char *font, *fontpos; + int count; xcb_screen_t *screen = get_screen(r->s->idx); uint32_t wa[3]; XRenderColor color; @@ -1878,12 +1880,25 @@ bar_setup(struct swm_region *r) err(1, "bar_setup: calloc: failed to allocate memory."); if (bar_font == NULL) { - while ((font = strsep(&bar_fonts, " ,")) != NULL) { + while ((font = strsep(&bar_fonts, ",")) != NULL) { if (*font == '\0') continue; DNPRINTF(SWM_D_INIT, "bar_setup: try font %s\n", font); - bar_font = XftFontOpenName(display, r->s->idx, font); + + count = 0; + fontpos = font; + while ((fontpos = index(fontpos, '-'))) { + count++; + fontpos++; + } + + if (count == 14) + bar_font = XftFontOpenXlfd(display, r->s->idx, + font); + else + bar_font = XftFontOpenName(display, r->s->idx, + font); if (!bar_font) { warnx("unable to load font %s", font); continue; @@ -1898,7 +1913,7 @@ bar_setup(struct swm_region *r) if (bar_font == NULL) errx(1, "unable to open a font"); - bar_height = bar_font->height + 4 * bar_border_width; + bar_height = bar_font->height + 2 * bar_border_width; if (bar_height < 1) bar_height = 1;