diff options
author | Thomas Adam <thomas@xteddy.org> | 2019-03-18 21:24:49 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2019-03-18 21:24:49 +0000 |
commit | 962f255ee8f271920e8901824ae30fa7a0b40804 (patch) | |
tree | 32c8466be03d668fc42360e5f415ad689c5c95f9 /mode-tree.c | |
parent | 1d6fe43c7b2250f042d0113da8545d5ebb75c01e (diff) | |
parent | 979313832ce1d5f6cdc2c512e8524d6c517422e0 (diff) | |
download | rtmux-962f255ee8f271920e8901824ae30fa7a0b40804.tar.gz rtmux-962f255ee8f271920e8901824ae30fa7a0b40804.tar.bz2 rtmux-962f255ee8f271920e8901824ae30fa7a0b40804.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'mode-tree.c')
-rw-r--r-- | mode-tree.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/mode-tree.c b/mode-tree.c index 112969ea..60e23534 100644 --- a/mode-tree.c +++ b/mode-tree.c @@ -497,7 +497,7 @@ mode_tree_draw(struct mode_tree_data *mtd) struct options *oo = wp->window->options; struct screen_write_ctx ctx; struct grid_cell gc0, gc; - u_int w, h, i, j, sy, box_x, box_y; + u_int w, h, i, j, sy, box_x, box_y, width; char *text, *start, key[7]; const char *tag, *symbol; size_t size, n; @@ -572,8 +572,9 @@ mode_tree_draw(struct mode_tree_data *mtd) tag = "*"; else tag = ""; - xasprintf(&text, "%-*s%s%s%s: %s", keylen, key, start, - mti->name, tag, mti->text); + xasprintf(&text, "%-*s%s%s%s: ", keylen, key, start, mti->name, + tag); + width = utf8_cstrwidth(text); free(start); if (mti->tagged) { @@ -582,11 +583,13 @@ mode_tree_draw(struct mode_tree_data *mtd) } if (i != mtd->current) { - screen_write_cnputs(&ctx, w, &gc0, "%s", text); screen_write_clearendofline(&ctx, 8); + screen_write_puts(&ctx, &gc0, "%s", text); + format_draw(&ctx, &gc0, w - width, mti->text, NULL); } else { - screen_write_cnputs(&ctx, w, &gc, "%s", text); screen_write_clearendofline(&ctx, gc.bg); + screen_write_puts(&ctx, &gc, "%s", text); + format_draw(&ctx, &gc, w - width, mti->text, NULL); } free(text); |