aboutsummaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2009-02-10 00:18:06 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2009-02-10 00:18:06 +0000
commitb37399304f9fa310d0790dee8a8325d79cc9af39 (patch)
tree789d0aa5aaa2ebc4999941f7470873d8aa333c01 /server.c
parentcc5a0ab0e427a47c4f5f95d6f6b257c7589f2b42 (diff)
downloadrtmux-b37399304f9fa310d0790dee8a8325d79cc9af39.tar.gz
rtmux-b37399304f9fa310d0790dee8a8325d79cc9af39.tar.bz2
rtmux-b37399304f9fa310d0790dee8a8325d79cc9af39.zip
Don't redraw status line unless it has actually changed. Stops extraneous
updates between clock/#() changes and doesn't require manual status-interval 0 when no updates are occuring.
Diffstat (limited to 'server.c')
-rw-r--r--server.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/server.c b/server.c
index 29aed79f..d7ef46f7 100644
--- a/server.c
+++ b/server.c
@@ -1,4 +1,4 @@
-/* $Id: server.c,v 1.118 2009-02-08 16:26:43 nicm Exp $ */
+/* $Id: server.c,v 1.119 2009-02-10 00:18:06 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -464,7 +464,7 @@ server_check_redraw(struct client *c)
{
struct session *s;
char title[512];
- int flags;
+ int flags, redraw;
if (c == NULL || c->session == NULL)
return;
@@ -487,11 +487,13 @@ server_check_redraw(struct client *c)
if (c->flags & (CLIENT_REDRAW|CLIENT_STATUS)) {
if (c->message_string != NULL)
- status_message_redraw(c);
+ redraw = status_message_redraw(c);
else if (c->prompt_string != NULL)
- status_prompt_redraw(c);
+ redraw = status_prompt_redraw(c);
else
- status_redraw(c);
+ redraw = status_redraw(c);
+ if (!redraw)
+ c->flags &= ~CLIENT_STATUS;
}
if (c->flags & CLIENT_REDRAW) {