From 84cde92c8fa4f8b6e777c9c6608312d7dbc33ced Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 2 Apr 2009 20:30:23 +0000 Subject: If redrawing the region would mean redrawing > half the pane, just schedule to redraw the entire window. Also add a flag to skip updating the window any further if it is scheduled to be redrawn. This has the effect of batching multiple redraws together. --- tty-write.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tty-write.c') diff --git a/tty-write.c b/tty-write.c index 4e153fe7..78ac131d 100644 --- a/tty-write.c +++ b/tty-write.c @@ -1,4 +1,4 @@ -/* $Id: tty-write.c,v 1.12 2009-02-21 19:25:58 nicm Exp $ */ +/* $Id: tty-write.c,v 1.13 2009-04-02 20:30:23 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -42,6 +42,8 @@ tty_vwrite_cmd(struct window_pane *wp, enum tty_cmd cmd, va_list ap) if (wp == NULL) return; + if (wp->window->flags & WINDOW_REDRAW) + return; if (wp->window->flags & WINDOW_HIDDEN || wp->flags & PANE_HIDDEN) return; @@ -71,6 +73,8 @@ tty_write_mode(struct window_pane *wp, int mode) if (wp == NULL) return; + if (wp->window->flags & WINDOW_REDRAW) + return; if (wp->window->flags & WINDOW_HIDDEN || wp->flags & PANE_HIDDEN) return; -- cgit