aboutsummaryrefslogtreecommitdiff
path: root/screen-redraw.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-08-11 12:01:20 +0100
committerThomas Adam <thomas@xteddy.org>2021-08-11 12:01:20 +0100
commite9d49161e0510b8b2eccbe33195789937d25796f (patch)
tree3b3c38e7e1056280b55790e80093c4ead45026a2 /screen-redraw.c
parent7a06b92061b6ade8fae57a0c60435deb07e56855 (diff)
parent901360007479f176164ab2756072808fc17608c1 (diff)
downloadrtmux-e9d49161e0510b8b2eccbe33195789937d25796f.tar.gz
rtmux-e9d49161e0510b8b2eccbe33195789937d25796f.tar.bz2
rtmux-e9d49161e0510b8b2eccbe33195789937d25796f.zip
Merge branch 'obsd-master' into master
Diffstat (limited to 'screen-redraw.c')
-rw-r--r--screen-redraw.c17
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;