mirror of https://github.com/tmux/tmux.git
Be less aggressive about turning the cursor off, only explicitly turn it off
when tmux is redrawing, otherwise leave in the state set by the application.
This commit is contained in:
parent
2cb2bb8257
commit
d528184836
8
tty.c
8
tty.c
|
@ -524,6 +524,8 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy)
|
|||
const struct grid_utf8 *gu;
|
||||
u_int i, sx;
|
||||
|
||||
tty_update_mode(tty, tty->mode & ~MODE_CURSOR);
|
||||
|
||||
sx = screen_size_x(s);
|
||||
if (sx > s->grid->linedata[s->grid->hsize + py].cellsize)
|
||||
sx = s->grid->linedata[s->grid->hsize + py].cellsize;
|
||||
|
@ -548,8 +550,10 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy)
|
|||
tty_cell(tty, gc, gu);
|
||||
}
|
||||
|
||||
if (sx >= tty->sx)
|
||||
if (sx >= tty->sx) {
|
||||
tty_update_mode(tty, tty->mode);
|
||||
return;
|
||||
}
|
||||
tty_reset(tty);
|
||||
|
||||
tty_cursor(tty, sx, py, ox, oy);
|
||||
|
@ -559,6 +563,7 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy)
|
|||
for (i = sx; i < screen_size_x(s); i++)
|
||||
tty_putc(tty, ' ');
|
||||
}
|
||||
tty_update_mode(tty, tty->mode);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -587,7 +592,6 @@ tty_write(void (*cmdfn)(
|
|||
if (c->session->curw->window == wp->window) {
|
||||
if (c->tty.flags & TTY_FREEZE || c->tty.term == NULL)
|
||||
continue;
|
||||
tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR);
|
||||
cmdfn(&c->tty, ctx);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue