summaryrefslogtreecommitdiff
path: root/usr.bin/tmux
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2017-02-09 10:09:15 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2017-02-09 10:09:15 +0000
commit180f29a2c42ef9f1e4564a2321227656d9cf732d (patch)
tree0d24b0b787380701bcb1852e41a59016e57f76b7 /usr.bin/tmux
parent5a6dc774cca7cf3cff98d57845d43f945f7cb8a4 (diff)
Combining characters need a full flush.
Diffstat (limited to 'usr.bin/tmux')
-rw-r--r--usr.bin/tmux/screen-write.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/tmux/screen-write.c b/usr.bin/tmux/screen-write.c
index d3cb8c962f7..3ec61426cb3 100644
--- a/usr.bin/tmux/screen-write.c
+++ b/usr.bin/tmux/screen-write.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: screen-write.c,v 1.111 2017/02/09 09:33:15 nicm Exp $ */
+/* $OpenBSD: screen-write.c,v 1.112 2017/02/09 10:09:14 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -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 &&