There is no need to clear every line entirely before drawing to it, this

means moving the cursor and messes up wrapping. Better to just clear the
sections that aren't written over. GitHub issue 2537.
This commit is contained in:
nicm
2021-01-18 10:27:54 +00:00
parent 71c590a37f
commit 91d112bf12
4 changed files with 26 additions and 21 deletions

13
tty.c
View File

@ -1531,20 +1531,9 @@ tty_cmd_deletecharacter(struct tty *tty, const struct tty_ctx *ctx)
void
tty_cmd_clearcharacter(struct tty *tty, const struct tty_ctx *ctx)
{
if (ctx->bigger) {
tty_draw_pane(tty, ctx, ctx->ocy);
return;
}
tty_default_attributes(tty, &ctx->defaults, ctx->palette, ctx->bg);
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
if (tty_term_has(tty->term, TTYC_ECH) &&
!tty_fake_bce(tty, &ctx->defaults, 8))
tty_putcode1(tty, TTYC_ECH, ctx->num);
else
tty_repeat_space(tty, ctx->num);
tty_clear_pane_line(tty, ctx, ctx->ocy, ctx->ocx, ctx->num, ctx->bg);
}
void