diff options
author | nicm <nicm> | 2022-03-16 17:00:17 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2022-04-06 14:19:51 +0100 |
commit | fe44b105e4a2d1d7baa12b37d0b84d8c6be9addc (patch) | |
tree | aba35e99e0898df782b9e181ab42c57125c3d313 /screen-redraw.c | |
parent | ad7113e0dbf2e5f5b6b33fd34824c5cf16e9053c (diff) | |
download | rtmux-fe44b105e4a2d1d7baa12b37d0b84d8c6be9addc.tar.gz rtmux-fe44b105e4a2d1d7baa12b37d0b84d8c6be9addc.tar.bz2 rtmux-fe44b105e4a2d1d7baa12b37d0b84d8c6be9addc.zip |
Add an option to set the character used for unused areas of the
terminal, GitHub issue 3110.
Diffstat (limited to 'screen-redraw.c')
-rw-r--r-- | screen-redraw.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/screen-redraw.c b/screen-redraw.c index ef79d9aa..c4906ab8 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -47,11 +47,16 @@ enum screen_redraw_border_type { /* Get cell border character. */ static void -screen_redraw_border_set(struct window_pane *wp, enum pane_lines pane_lines, - int cell_type, struct grid_cell *gc) +screen_redraw_border_set(struct window *w, struct window_pane *wp, + enum pane_lines pane_lines, int cell_type, struct grid_cell *gc) { u_int idx; + if (cell_type == CELL_OUTSIDE && w->fill_character != NULL) { + utf8_copy(&gc->data, &w->fill_character[0]); + return; + } + switch (pane_lines) { case PANE_LINES_NUMBER: if (cell_type == CELL_OUTSIDE) { @@ -409,7 +414,7 @@ screen_redraw_make_pane_status(struct client *c, struct window_pane *wp, else py = wp->yoff + wp->sy; cell_type = screen_redraw_type_of_cell(c, px, py, pane_status); - screen_redraw_border_set(wp, pane_lines, cell_type, &gc); + screen_redraw_border_set(w, wp, pane_lines, cell_type, &gc); screen_write_cell(&ctx, &gc); } gc.attr &= ~GRID_ATTR_CHARSET; @@ -690,7 +695,7 @@ screen_redraw_draw_borders_cell(struct screen_redraw_ctx *ctx, u_int i, u_int j) screen_redraw_check_is(x, y, pane_status, marked_pane.wp)) gc.attr ^= GRID_ATTR_REVERSE; } - screen_redraw_border_set(wp, ctx->pane_lines, cell_type, &gc); + screen_redraw_border_set(w, wp, ctx->pane_lines, cell_type, &gc); if (cell_type == CELL_TOPBOTTOM && (c->flags & CLIENT_UTF8) && |