diff options
author | nicm <nicm> | 2021-08-06 03:29:15 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-08-06 03:29:15 +0000 |
commit | 950d3c5bbc99b68a353e78bbfe60933d60e3cf46 (patch) | |
tree | 8008b7d4502a9564a6adf854a37db32abb12e4e1 /tty.c | |
parent | 97b5962ab1ce08f50001f2bbcd87685e8dcce222 (diff) | |
download | rtmux-950d3c5bbc99b68a353e78bbfe60933d60e3cf46.tar.gz rtmux-950d3c5bbc99b68a353e78bbfe60933d60e3cf46.tar.bz2 rtmux-950d3c5bbc99b68a353e78bbfe60933d60e3cf46.zip |
Tweak previous not to replace complete characters with spaces.
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -1348,8 +1348,8 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx, const struct grid_cell *gcp; struct grid_line *gl; struct client *c = tty->client; - u_int i, j, ux, sx, width; - int flags, cleared = 0, wrapped = 0, hidden; + u_int i, j, ux, sx, width, hidden; + int flags, cleared = 0, wrapped = 0; char buf[512]; size_t len; u_int cellsize; @@ -1452,12 +1452,13 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx, hidden = 0; for (j = 0; j < gcp->data.width; j++) { - if (!tty_check_overlay(tty, atx + ux + j, aty)) { - hidden = 1; - break; - } + if (!tty_check_overlay(tty, atx + ux + j, aty)) + hidden++; } - if (hidden || ux + gcp->data.width > nx) { + if (hidden != 0 && hidden == gcp->data.width) { + if (~gcp->flags & GRID_FLAG_PADDING) + ux += gcp->data.width; + } else if (hidden != 0 || ux + gcp->data.width > nx) { if (~gcp->flags & GRID_FLAG_PADDING) { tty_attributes(tty, &last, defaults, palette); tty_cursor(tty, atx + ux, aty); |