diff --git a/grid.c b/grid.c index 0098c81c..a0a52a0e 100644 --- a/grid.c +++ b/grid.c @@ -267,6 +267,7 @@ grid_set_tab(struct grid_cell *gc, u_int width) { memset(gc->data.data, 0, sizeof gc->data.data); gc->flags |= GRID_FLAG_TAB; + gc->flags &= ~GRID_FLAG_PADDING; gc->data.width = gc->data.size = gc->data.have = width; memset(gc->data.data, ' ', gc->data.size); } diff --git a/screen-write.c b/screen-write.c index b980d0ee..a8211c0d 100644 --- a/screen-write.c +++ b/screen-write.c @@ -1872,9 +1872,13 @@ screen_write_collect_end(struct screen_write_ctx *ctx) grid_view_set_cell(s->grid, xx, s->cy, &grid_default_cell); } - if (gc.data.width > 1) { - grid_view_set_cell(s->grid, xx, s->cy, - &grid_default_cell); + if (xx != s->cx) { + if (xx == 0) + grid_view_get_cell(s->grid, 0, s->cy, &gc); + if (gc.data.width > 1) { + grid_view_set_cell(s->grid, xx, s->cy, + &grid_default_cell); + } } }