summaryrefslogtreecommitdiffstats
path: root/tty.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-03-20 11:01:00 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-03-20 11:01:00 +0000
commitf59971276ac02d8b42ef222509673ff356800f56 (patch)
tree8454dbd9bed36b33f8867a15c86725b29024adbd /tty.c
parentbf9e7a1c688eaa48dc2c0900ccd12a06e35c3ae4 (diff)
Add a simple form of output rate limiting by counting the number of
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it exceeds a threshold (current default 50/millisecond), start to redraw the pane every 100 milliseconds instead of making each change as it comes. Two configuration options - c0-change-trigger and c0-change-interval. This makes tmux much more responsive under very fast output (for example yes(1) or accidentally cat'ing a large file) but may not be perfect on all terminals and connections - feedback very welcome, particularly where this change has a negative rather than positive effect (making it off by default is a possibility). After much experimentation based originally on a request Robin Lee Powell (which ended with a completely different solution), this idea from discussion with Ailin Nemui.
Diffstat (limited to 'tty.c')
-rw-r--r--tty.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tty.c b/tty.c
index c9191a6a..03a99341 100644
--- a/tty.c
+++ b/tty.c
@@ -661,7 +661,7 @@ tty_write(
if (wp->window->flags & WINDOW_REDRAW || wp->flags & PANE_REDRAW)
return;
- if (!window_pane_visible(wp))
+ if (!window_pane_visible(wp) || wp->flags & PANE_DROP)
return;
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {