diff --git a/screen-redraw.c b/screen-redraw.c index 30344fe5..5ca6024d 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -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); diff --git a/server-client.c b/server-client.c index 26958c5d..92b3a6ad 100644 --- a/server-client.c +++ b/server-client.c @@ -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); diff --git a/tty.c b/tty.c index 548c837d..bd1c92b0 100644 --- a/tty.c +++ b/tty.c @@ -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))