diff options
author | nicm <nicm> | 2021-08-11 09:05:21 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-08-11 09:05:21 +0000 |
commit | 901360007479f176164ab2756072808fc17608c1 (patch) | |
tree | 881a99db29d15dab65a1fd94eafed484f4373fd5 /screen-redraw.c | |
parent | 338ec859a463eaa4c0502116ef2857c566c9e468 (diff) | |
download | rtmux-901360007479f176164ab2756072808fc17608c1.tar.gz rtmux-901360007479f176164ab2756072808fc17608c1.tar.bz2 rtmux-901360007479f176164ab2756072808fc17608c1.zip |
Return to applying pane-border-style to the area outside panes, GitHub
issue 2816.
Diffstat (limited to 'screen-redraw.c')
-rw-r--r-- | screen-redraw.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/screen-redraw.c b/screen-redraw.c index 729bfb7e..4c4135a8 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -680,7 +680,10 @@ screen_redraw_draw_borders_cell(struct screen_redraw_ctx *ctx, u_int i, u_int j) { struct client *c = ctx->c; struct session *s = c->session; + struct window *w = s->curw->window; + struct options *oo = w->options; struct tty *tty = &c->tty; + struct format_tree *ft; struct window_pane *wp; u_int cell_type, x = ctx->ox + i, y = ctx->oy + j; int pane_status = ctx->pane_status, isolates; @@ -694,9 +697,17 @@ screen_redraw_draw_borders_cell(struct screen_redraw_ctx *ctx, u_int i, u_int j) if (cell_type == CELL_INSIDE) return; - if (wp == NULL) - memcpy(&gc, &grid_default_cell, sizeof gc); - else { + if (wp == NULL) { + if (!ctx->no_pane_gc_set) { + ft = format_create_defaults(NULL, c, s, s->curw, NULL); + memcpy(&ctx->no_pane_gc, &grid_default_cell, sizeof gc); + style_add(&ctx->no_pane_gc, oo, "pane-border-style", + ft); + format_free(ft); + ctx->no_pane_gc_set = 1; + } + memcpy(&gc, &ctx->no_pane_gc, sizeof gc); + } else { tmp = screen_redraw_draw_borders_style(ctx, x, y, wp); if (tmp == NULL) return; |