=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.240 retrieving revision 1.241 diff -c -r1.240 -r1.241 *** src/usr.bin/tmux/server-client.c 2017/07/12 09:07:52 1.240 --- src/usr.bin/tmux/server-client.c 2017/07/14 08:04:23 1.241 *************** *** 1,4 **** ! /* $OpenBSD: server-client.c,v 1.240 2017/07/12 09:07:52 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: server-client.c,v 1.241 2017/07/14 08:04:23 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 1321,1348 **** } } } ! if (needed) { ! left = EVBUFFER_LENGTH(tty->out); ! if (left != 0) { ! log_debug("%s: redraw deferred (%zu left)", c->name, left); ! if (evtimer_initialized(&ev) && evtimer_pending(&ev, NULL)) ! return; ! log_debug("redraw timer started"); evtimer_set(&ev, server_client_redraw_timer, NULL); evtimer_add(&ev, &tv); - - /* - * We may have got here for a single pane redraw, but - * force a full redraw next time in case other panes - * have been updated. - */ - c->flags |= CLIENT_REDRAW; - return; } ! if (evtimer_initialized(&ev)) ! evtimer_del(&ev); log_debug("%s: redraw needed", c->name); - } if (c->flags & (CLIENT_REDRAW|CLIENT_STATUS)) { if (options_get_number(s->options, "set-titles")) --- 1321,1343 ---- } } } ! if (needed && (left = EVBUFFER_LENGTH(tty->out)) != 0) { ! log_debug("%s: redraw deferred (%zu left)", c->name, left); ! if (!evtimer_initialized(&ev)) evtimer_set(&ev, server_client_redraw_timer, NULL); + if (!evtimer_pending(&ev, NULL)) { + log_debug("redraw timer started"); evtimer_add(&ev, &tv); } ! ! /* ! * We may have got here for a single pane redraw, but force a ! * full redraw next time in case other panes have been updated. ! */ ! c->flags |= CLIENT_REDRAW; ! return; ! } else if (needed) log_debug("%s: redraw needed", c->name); if (c->flags & (CLIENT_REDRAW|CLIENT_STATUS)) { if (options_get_number(s->options, "set-titles"))