diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2008-06-07 07:13:08 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2008-06-07 07:13:08 +0000 |
commit | 958069575dc663595d37a37a8273db73a4e99aa1 (patch) | |
tree | bdc908958cf08dd968c6a2effdc02672fe813713 /server.c | |
parent | 77224aaf8bd1cf816054d968605a43145617d804 (diff) | |
download | rtmux-958069575dc663595d37a37a8273db73a4e99aa1.tar.gz rtmux-958069575dc663595d37a37a8273db73a4e99aa1.tar.bz2 rtmux-958069575dc663595d37a37a8273db73a4e99aa1.zip |
Clear clients with flag too.
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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. */ |