Free entire screen when destroyed.

pull/1/head
Nicholas Marriott 2007-11-21 21:28:58 +00:00
parent f8686f126d
commit 1e5cb8d2e4
4 changed files with 9 additions and 7 deletions

1
TODO
View File

@ -56,6 +56,7 @@
kill server kill server
command to run something without a window at all? command to run something without a window at all?
command to insert a key into a window (send-key) command to insert a key into a window (send-key)
command to purge window history
extend list-clients to list clients attached to a session (-a for all?) extend list-clients to list clients attached to a session (-a for all?)
bring back detach-session to detach all clients on a session? bring back detach-session to detach all clients on a session?
- function groups, bind-key ^W { select-window 0; send-key ^W } etc - function groups, bind-key ^W { select-window 0; send-key ^W } etc

View File

@ -1,4 +1,4 @@
/* $Id: screen-display.c,v 1.3 2007-11-21 15:35:53 nicm Exp $ */ /* $Id: screen-display.c,v 1.4 2007-11-21 21:28:58 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -180,9 +180,10 @@ screen_display_scroll_region_up(struct screen *s)
if (s->hsize == s->hlimit) { if (s->hsize == s->hlimit) {
/* /*
* If the limit is hit, shift the whole thing up. * If the limit is hit, free the first and shift
* XXX this is inefficient, is there a better way? * the whole thing up.
*/ */
screen_free_lines(s, 0, 1);
screen_move_lines(s, 0, 1, sy - 1); screen_move_lines(s, 0, 1, sy - 1);
} else { } else {
s->hsize++; s->hsize++;

View File

@ -1,4 +1,4 @@
/* $Id: screen.c,v 1.33 2007-11-21 19:53:56 nicm Exp $ */ /* $Id: screen.c,v 1.34 2007-11-21 21:28:58 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -205,7 +205,7 @@ screen_resize(struct screen *s, u_int sx, u_int sy)
void void
screen_destroy(struct screen *s) screen_destroy(struct screen *s)
{ {
screen_free_lines(s, 0, s->dy); screen_free_lines(s, 0, s->dy + s->hsize);
xfree(s->grid_data); xfree(s->grid_data);
xfree(s->grid_attr); xfree(s->grid_attr);
xfree(s->grid_colr); xfree(s->grid_colr);

View File

@ -1,4 +1,4 @@
/* $Id: window-scroll.c,v 1.9 2007-11-21 19:53:57 nicm Exp $ */ /* $Id: window-scroll.c,v 1.10 2007-11-21 21:28:58 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -95,7 +95,7 @@ window_scroll_draw(struct window *w, struct buffer *b, u_int py, u_int ny)
struct screen_draw_ctx ctx; struct screen_draw_ctx ctx;
if (s->hsize != data->size) { if (s->hsize != data->size) {
data->ox += s->hsize - data->size; data->oy += s->hsize - data->size;
data->size = s->hsize; data->size = s->hsize;
} }