Handle insert cells when cursor at edge of screen correctly, and do a

full flush before insert.
This commit is contained in:
nicm 2017-02-16 12:43:08 +00:00
parent c889e11375
commit c948c6b697
2 changed files with 2 additions and 1 deletions

View File

@ -194,7 +194,7 @@ grid_view_insert_cells(struct grid *gd, u_int px, u_int py, u_int nx, u_int bg)
sx = grid_view_x(gd, gd->sx);
if (px == sx - 1)
if (px >= sx - 1)
grid_clear(gd, px, py, 1, 1, bg);
else
grid_move_cells(gd, px + nx, px, py, sx - px - nx, bg);

View File

@ -1260,6 +1260,7 @@ screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc)
/* Create space for character in insert mode. */
if (s->mode & MODE_INSERT) {
screen_write_collect_flush(ctx, 0);
ttyctx.num = width;
tty_write(tty_cmd_insertcharacter, &ttyctx);
}