summaryrefslogtreecommitdiffstats
path: root/screen-write.c
diff options
context:
space:
mode:
authornicm <nicm>2017-02-09 10:09:14 +0000
committernicm <nicm>2017-02-09 10:09:14 +0000
commitddb3750c8ba1f22ab6d96d2ef929e65dc86534df (patch)
tree07bbbc2954f3409861d0a53eb4a60810b70ffbb7 /screen-write.c
parentfd6e46596d949ca4fc9876ab3a205ed71f9dd35a (diff)
Combining characters need a full flush.
Diffstat (limited to 'screen-write.c')
-rw-r--r--screen-write.c7
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 &&