From f6001f9ffc269dfec3c84f4f25d9561d845b8b01 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 27 Mar 2009 16:44:51 +0000 Subject: Whoops. Didn't mean to commit this yet. --- screen-redraw.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'screen-redraw.c') diff --git a/screen-redraw.c b/screen-redraw.c index 7752705d..11147e02 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -1,4 +1,4 @@ -/* $Id: screen-redraw.c,v 1.27 2009-03-27 16:44:00 nicm Exp $ */ +/* $Id: screen-redraw.c,v 1.28 2009-03-27 16:44:51 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -128,5 +128,21 @@ screen_redraw_blanky(struct client *c, u_int oy, u_int ny, char ch) void screen_redraw_line(struct client *c, struct screen *s, u_int oy, u_int py) { - tty_draw_line(&c->tty, s, py, oy); + const struct grid_cell *gc; + struct grid_cell tc; + u_int i, sx; + + sx = screen_size_x(s); + if (sx > c->tty.sx) + sx = c->tty.sx; + for (i = 0; i < sx; i++) { + gc = grid_view_peek_cell(s->grid, i, py); + tty_cursor(&c->tty, i, py, oy); + if (screen_check_selection(s, i, py)) { + memcpy(&tc, &s->sel.cell, sizeof tc); + tc.data = gc->data; + tty_cell(&c->tty, &tc); + } else + tty_cell(&c->tty, gc); + } } -- cgit