Combining characters need a full flush.

This commit is contained in:
nicm 2017-02-09 10:09:14 +00:00
parent fd6e46596d
commit ddb3750c8b

View File

@ -1153,11 +1153,9 @@ screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc)
return;
ctx->cells++;
/* Flush any existing scrolling. */
screen_write_collect_flush(ctx, 1);
/* If the width is zero, combine onto the previous character. */
if (width == 0) {
screen_write_collect_flush(ctx, 0);
if ((gc = screen_write_combine(ctx, &gc->data, &xx)) != 0) {
screen_write_cursormove(ctx, xx, s->cy);
screen_write_initctx(ctx, &ttyctx);
@ -1167,6 +1165,9 @@ screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc)
return;
}
/* Flush any existing scrolling. */
screen_write_collect_flush(ctx, 1);
/* If this character doesn't fit, ignore it. */
if ((~s->mode & MODE_WRAP) &&
width > 1 &&