diff options
author | Bert Münnich <ber.t@gmx.com> | 2012-02-21 12:49:29 +0100 |
---|---|---|
committer | Bert Münnich <ber.t@gmx.com> | 2012-02-21 12:49:29 +0100 |
commit | ed2c9f7caa67dcd1c9b0331c5634d9ccdb3b9fa8 (patch) | |
tree | b5010c6cc2215264c200dce87a3152e3b8ca8a1f /window.c | |
parent | 9c346c322a8d76b04db60f4528aaa4448adeca8e (diff) | |
download | nsxiv-ed2c9f7caa67dcd1c9b0331c5634d9ccdb3b9fa8.tar.zst |
Display full name in info bar, if there is enough space
Diffstat (limited to 'window.c')
-rw-r--r-- | window.c | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -338,16 +338,6 @@ void win_clear(win_t *win) { XFillRectangle(e->dpy, win->pm, gc, 0, 0, e->scrw, e->scrh); } -int win_textwidth(const char *text, unsigned int len) { - XRectangle r; - - if (font.set) { - XmbTextExtents(font.set, text, len, NULL, &r); - return r.width; - } else { - return XTextWidth(font.xfont, text, len); - } -} void win_draw_bar(win_t *win) { win_env_t *e; int len, x, y, w, tw = 0, seplen; @@ -369,7 +359,7 @@ void win_draw_bar(win_t *win) { if (win->lbar != NULL) { len = strlen(win->lbar); - while (len > 0 && (tw = win_textwidth(win->lbar, len)) > w) + while (len > 0 && (tw = win_textwidth(win->lbar, len, false)) > w) len--; w -= tw + 2 * H_TEXT_PAD; if (font.set) @@ -381,7 +371,7 @@ void win_draw_bar(win_t *win) { len = strlen(win->rbar); seplen = strlen(BAR_SEPARATOR); rt = win->rbar; - while (len > 0 && (tw = win_textwidth(rt, len)) > w) { + while (len > 0 && (tw = win_textwidth(rt, len, false)) > w) { rt = strstr(rt, BAR_SEPARATOR); if (rt != NULL) { rt += seplen; @@ -427,6 +417,18 @@ void win_draw_rect(win_t *win, Pixmap pm, int x, int y, int w, int h, XDrawRectangle(win->env.dpy, pm, gc, x, y, w, h); } +int win_textwidth(const char *text, unsigned int len, bool with_padding) { + XRectangle r; + int padding = with_padding ? 2 * H_TEXT_PAD : 0; + + if (font.set) { + XmbTextExtents(font.set, text, len, NULL, &r); + return r.width + padding; + } else { + return XTextWidth(font.xfont, text, len) + padding; + } +} + void win_set_title(win_t *win, const char *title) { if (win == NULL || win->xwin == None) return; |