diff --git a/CHANGES b/CHANGES index 3bcfd283..ac033861 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +04 November 2008 + +* Don't try to redraw status line when showing a prompt or message; if it does, + the status timer is never reset so it redraws on every loop. Spotted by + joshe. + 09 October 2008 * Translate 256 colours into 16 if 256 is not available, same as screen does. @@ -681,4 +687,4 @@ (including mutt, emacs). No status bar yet and no key remapping or other customisation. -$Id: CHANGES,v 1.164 2008-10-09 22:00:33 nicm Exp $ +$Id: CHANGES,v 1.165 2008-11-04 20:55:58 nicm Exp $ diff --git a/server.c b/server.c index 2b6c771e..82b1f07f 100644 --- a/server.c +++ b/server.c @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.83 2008-09-29 16:03:27 nicm Exp $ */ +/* $Id: server.c,v 1.84 2008-11-04 20:55:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -393,8 +393,16 @@ server_check_timers(struct client *c) if (c->message_string != NULL && timercmp(&tv, &c->message_timer, >)) server_clear_client_message(c); + if (c->message_string != NULL || c->prompt_string != NULL) { + /* + * Don't need timed redraw for messages/prompts so bail now. + * The status timer isn't reset when they are redrawn anyway. + */ + return; + } if (!options_get_number(&s->options, "status")) return; + interval = options_get_number(&s->options, "status-interval"); if (interval == 0) return;