diff options
author | NRK <nrk@disroot.org> | 2024-06-12 23:28:07 +0200 |
---|---|---|
committer | NRK <nrk@disroot.org> | 2024-06-18 17:11:36 +0200 |
commit | 1fbff6d5392f8914bcc471b8472e81b5a4a703df (patch) | |
tree | 69413dbbd48524af64ffc5c3f49432e0f0424730 | |
parent | b6d9e7d24f8e974749c41d8eaa7e21273548ff7f (diff) | |
download | nsxiv-1fbff6d5392f8914bcc471b8472e81b5a4a703df.tar.zst |
win_draw_bar: simplify logic a bit
-rw-r--r-- | window.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -470,17 +470,15 @@ static void win_draw_bar(win_t *win) XSetBackground(e->dpy, gc, win->bar_bg.pixel); if ((len = strlen(r->buf)) > 0) { - if ((tw = TEXTWIDTH(win, r->buf, len)) > w) { - XftDrawDestroy(d); - return; + if ((tw = TEXTWIDTH(win, r->buf, len)) <= w) { + x = win->w - tw - H_TEXT_PAD; + win_draw_text(win, d, &win->bar_fg, x, y, r->buf, len, tw); } - x = win->w - tw - H_TEXT_PAD; - w -= tw; - win_draw_text(win, d, &win->bar_fg, x, y, r->buf, len, tw); + /* remaining width, also keeping gap between left and right parts */ + w -= tw + (2 * H_TEXT_PAD); } - if ((len = strlen(l->buf)) > 0) { + if ((len = strlen(l->buf)) > 0 && w > 0) { x = H_TEXT_PAD; - w -= 2 * H_TEXT_PAD; /* gap between left and right parts */ win_draw_text(win, d, &win->bar_fg, x, y, l->buf, len, w); } XftDrawDestroy(d); |