From fbde17083d632a3e88622ce517711574ce7f8fa0 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 14 Oct 2026 11:54:55 +0000 Subject: [PATCH] Only redraw when a feature changed. --- tty.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tty.c b/tty.c index 0f2e35a52..e9d839853 100644 --- a/tty.c +++ b/tty.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.487 2026/10/14 08:33:19 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.488 2026/10/14 11:54:55 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -560,12 +560,15 @@ void tty_update_features(struct tty *tty) { struct client *c = tty->client; + int changed = 0; - if (tty_apply_features(tty->term)) + if (tty_apply_features(tty->term)) { tty_term_apply_overrides(tty->term); #ifdef ENABLE_IMAGES - image_tty_update(tty); + image_tty_update(tty); #endif + changed = 1; + } if (tty_use_margin(tty)) tty_putcode(tty, TTYC_ENMG); @@ -575,13 +578,10 @@ tty_update_features(struct tty *tty) tty_puts(tty, tty_term_string(tty->term, TTYC_ENFCS)); tty_puts(tty, tty_term_string(tty->term, TTYC_ENESC)); - /* - * Features might have changed since the first draw during attach. For - * example, this happens when DA responses are received. - */ - server_redraw_client(c); - - tty_invalidate(tty); + if (changed) { + server_redraw_client(c); + tty_invalidate(tty); + } } void