Do not update mode until actually drawing something.

pull/2195/head
Nicholas Marriott 2020-04-24 12:14:53 +01:00
parent ae73fd363b
commit a477c03ad5
3 changed files with 4 additions and 3 deletions

View File

@ -438,6 +438,7 @@ screen_redraw_screen(struct client *c)
return;
screen_redraw_set_context(c, &ctx);
tty_update_mode(&c->tty, c->tty.mode, NULL);
tty_sync_start(&c->tty);
if (flags & (CLIENT_REDRAWWINDOW|CLIENT_REDRAWBORDERS)) {
@ -473,6 +474,7 @@ screen_redraw_pane(struct client *c, struct window_pane *wp)
return;
screen_redraw_set_context(c, &ctx);
tty_update_mode(&c->tty, c->tty.mode, NULL);
tty_sync_start(&c->tty);
screen_redraw_draw_pane(&ctx, wp);

View File

@ -1780,7 +1780,6 @@ server_client_check_redraw(struct client *c)
if (!redraw)
continue;
log_debug("%s: redrawing pane %%%u", __func__, wp->id);
tty_update_mode(tty, mode, NULL);
screen_redraw_pane(c, wp);
}
c->redraw_panes = 0;
@ -1788,7 +1787,6 @@ server_client_check_redraw(struct client *c)
}
if (c->flags & CLIENT_ALLREDRAWFLAGS) {
tty_update_mode(tty, mode, NULL);
if (options_get_number(s->options, "set-titles"))
server_client_set_title(c);
screen_redraw_screen(c);

3
tty.c
View File

@ -676,7 +676,8 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s)
mode &= ~MODE_CURSOR;
changed = mode ^ tty->mode;
log_debug("%s: update mode %x to %x", c->name, tty->mode, mode);
if (changed != 0)
log_debug("%s: update mode %x to %x", c->name, tty->mode, mode);
if (changed & MODE_BLINKING) {
if (tty_term_has(tty->term, TTYC_CVVIS))