diff --git a/tty.c b/tty.c index 866ee93c..75721c63 100644 --- a/tty.c +++ b/tty.c @@ -461,8 +461,9 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy) gl = NULL; if (py != 0) gl = &s->grid->linedata[s->grid->hsize + py - 1]; - if (ox != 0 || (gl != NULL && !(gl->flags & GRID_LINE_WRAPPED)) || - tty->cy != oy + py - 1 || tty->cx < tty->sx) + if (oy + py == 0 || (gl != NULL && !(gl->flags & GRID_LINE_WRAPPED)) || + tty->cx < tty->sx || ox != 0 || + (oy + py != tty->cy + 1 && tty->cy != s->rlower + oy)) tty_cursor(tty, ox, oy + py); for (i = 0; i < sx; i++) {