diff options
author | nicm <nicm> | 2016-10-12 13:24:07 +0000 |
---|---|---|
committer | nicm <nicm> | 2016-10-12 13:24:07 +0000 |
commit | 4160df4ca4035c8caafce7650d0fcbcccc391f80 (patch) | |
tree | 4900cee4d755e18393587cb14cc4e8f662764504 /screen.c | |
parent | 68bebe1fb7dfe5d152a2734c5bd572b1db641a4c (diff) |
Redraw selection in tty_draw_line, so it appears when redrawing whole
pane. Reported by Theo Buehler.
Diffstat (limited to 'screen.c')
-rw-r--r-- | screen.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -371,6 +371,22 @@ screen_check_selection(struct screen *s, u_int px, u_int py) return (1); } +/* Get selected grid cell. */ +void +screen_select_cell(struct screen *s, struct grid_cell *dst, + const struct grid_cell *src) +{ + if (!s->sel.flag) + return; + + memcpy(dst, &s->sel.cell, sizeof *dst); + + utf8_copy(&dst->data, &src->data); + dst->attr = dst->attr & ~GRID_ATTR_CHARSET; + dst->attr |= src->attr & GRID_ATTR_CHARSET; + dst->flags = src->flags; +} + /* Reflow wrapped lines. */ static void screen_reflow(struct screen *s, u_int new_x) |