summaryrefslogtreecommitdiffstats
path: root/tty.c
diff options
context:
space:
mode:
authornicm <nicm>2016-10-12 13:24:07 +0000
committernicm <nicm>2016-10-12 13:24:07 +0000
commit4160df4ca4035c8caafce7650d0fcbcccc391f80 (patch)
tree4900cee4d755e18393587cb14cc4e8f662764504 /tty.c
parent68bebe1fb7dfe5d152a2734c5bd572b1db641a4c (diff)
Redraw selection in tty_draw_line, so it appears when redrawing whole
pane. Reported by Theo Buehler.
Diffstat (limited to 'tty.c')
-rw-r--r--tty.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tty.c b/tty.c
index d8702a2f..c4adfe82 100644
--- a/tty.c
+++ b/tty.c
@@ -658,7 +658,7 @@ void
tty_draw_line(struct tty *tty, const struct window_pane *wp,
struct screen *s, u_int py, u_int ox, u_int oy)
{
- struct grid_cell gc;
+ struct grid_cell gc, tmp_gc;
struct grid_line *gl;
u_int i, sx;
int flags;
@@ -687,7 +687,11 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp,
for (i = 0; i < sx; i++) {
grid_view_get_cell(s->grid, i, py, &gc);
- tty_cell(tty, &gc, wp);
+ if (gc.flags & GRID_FLAG_SELECTED) {
+ screen_select_cell(s, &tmp_gc, &gc);
+ tty_cell(tty, &tmp_gc, wp);
+ } else
+ tty_cell(tty, &gc, wp);
}
if (sx < tty->sx) {