diff options
author | nicm <nicm> | 2017-02-09 10:09:14 +0000 |
---|---|---|
committer | nicm <nicm> | 2017-02-09 10:09:14 +0000 |
commit | ddb3750c8ba1f22ab6d96d2ef929e65dc86534df (patch) | |
tree | 07bbbc2954f3409861d0a53eb4a60810b70ffbb7 /screen-write.c | |
parent | fd6e46596d949ca4fc9876ab3a205ed71f9dd35a (diff) | |
download | rtmux-ddb3750c8ba1f22ab6d96d2ef929e65dc86534df.tar.gz rtmux-ddb3750c8ba1f22ab6d96d2ef929e65dc86534df.tar.bz2 rtmux-ddb3750c8ba1f22ab6d96d2ef929e65dc86534df.zip |
Combining characters need a full flush.
Diffstat (limited to 'screen-write.c')
-rw-r--r-- | screen-write.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/screen-write.c b/screen-write.c index 43d12941..f630e0c8 100644 --- a/screen-write.c +++ b/screen-write.c @@ -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 && |