Free entire screen when destroyed.

This commit is contained in:
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
command to run something without a window at all?
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?)
bring back detach-session to detach all clients on a session?
- 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>
@ -180,9 +180,10 @@ screen_display_scroll_region_up(struct screen *s)
if (s->hsize == s->hlimit) {
/*
* If the limit is hit, shift the whole thing up.
* XXX this is inefficient, is there a better way?
* If the limit is hit, free the first and shift
* the whole thing up.
*/
screen_free_lines(s, 0, 1);
screen_move_lines(s, 0, 1, sy - 1);
} else {
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>
@ -205,7 +205,7 @@ screen_resize(struct screen *s, u_int sx, u_int sy)
void
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_attr);
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>
@ -95,7 +95,7 @@ window_scroll_draw(struct window *w, struct buffer *b, u_int py, u_int ny)
struct screen_draw_ctx ctx;
if (s->hsize != data->size) {
data->ox += s->hsize - data->size;
data->oy += s->hsize - data->size;
data->size = s->hsize;
}