Redo screen.c functions to make them readable and more flexible. Make scroll mode only redraw waht it needs.

This commit is contained in:
Nicholas Marriott
2007-11-21 18:24:49 +00:00
parent df158734c2
commit 24c39950ff
6 changed files with 333 additions and 89 deletions

View File

@ -1,4 +1,4 @@
/* $Id: window.c,v 1.29 2007-11-21 15:35:53 nicm Exp $ */
/* $Id: window.c,v 1.30 2007-11-21 18:24:49 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -284,10 +284,16 @@ window_parse(struct window *w, struct buffer *b)
void
window_draw(struct window *w, struct buffer *b, u_int py, u_int ny)
{
struct screen *s = &w->screen;
struct screen_draw_ctx ctx;
if (w->mode != NULL)
w->mode->draw(w, b, py, ny);
else
screen_draw(&w->screen, b, py, ny, 0, 0);
else {
screen_draw_start(&ctx, s, b, 0, 0);
screen_draw_lines(&ctx, py, ny);
screen_draw_stop(&ctx);
}
}
void