aboutsummaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2008-06-07 07:13:08 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2008-06-07 07:13:08 +0000
commit958069575dc663595d37a37a8273db73a4e99aa1 (patch)
treebdc908958cf08dd968c6a2effdc02672fe813713 /server.c
parent77224aaf8bd1cf816054d968605a43145617d804 (diff)
downloadrtmux-958069575dc663595d37a37a8273db73a4e99aa1.tar.gz
rtmux-958069575dc663595d37a37a8273db73a4e99aa1.tar.bz2
rtmux-958069575dc663595d37a37a8273db73a4e99aa1.zip
Clear clients with flag too.
Diffstat (limited to 'server.c')
-rw-r--r--server.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/server.c b/server.c
index e2a4db74..12f12d53 100644
--- a/server.c
+++ b/server.c
@@ -1,4 +1,4 @@
-/* $Id: server.c,v 1.57 2008-06-07 06:47:38 nicm Exp $ */
+/* $Id: server.c,v 1.58 2008-06-07 07:13:08 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -275,9 +275,18 @@ void
server_check_redraw(struct client *c)
{
struct screen_redraw_ctx ctx;
+ struct screen screen;
if (c == NULL || c->session == NULL)
return;
+
+ if (c->flags & CLIENT_CLEAR) {
+ screen_create(&screen, c->sx, c->sy - 1, 0);
+ screen_redraw_start(&ctx, &screen, tty_write_client, c);
+ screen_redraw_clear_screen(&ctx);
+ screen_redraw_stop(&ctx);
+ screen_destroy(&screen);
+ }
if (c->flags & CLIENT_REDRAW) {
screen_redraw_start_client(&ctx, c);
@@ -287,7 +296,7 @@ server_check_redraw(struct client *c)
} else if (c->flags & CLIENT_STATUS)
status_write_client(c);
- c->flags &= ~(CLIENT_REDRAW|CLIENT_STATUS);
+ c->flags &= ~(CLIENT_CLEAR|CLIENT_REDRAW|CLIENT_STATUS);
}
/* Check for status line redraw on client. */