aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2020-04-24 12:14:53 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2020-04-24 12:14:53 +0100
commita477c03ad59fb1487881df5c6be135dde4765133 (patch)
tree0c41ad7f29c1ff9a6d5fd8fb0a32544222dd4a9b
parentae73fd363b23ab3b20e8b8d45a8302ac38ff23d7 (diff)
downloadrtmux-a477c03ad59fb1487881df5c6be135dde4765133.tar.gz
rtmux-a477c03ad59fb1487881df5c6be135dde4765133.tar.bz2
rtmux-a477c03ad59fb1487881df5c6be135dde4765133.zip
Do not update mode until actually drawing something.
-rw-r--r--screen-redraw.c2
-rw-r--r--server-client.c2
-rw-r--r--tty.c3
3 files changed, 4 insertions, 3 deletions
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))