diff --git a/format.c b/format.c index 1f6b58e7..31fba2a9 100644 --- a/format.c +++ b/format.c @@ -4464,7 +4464,9 @@ format_loop_sessions(struct format_expand_state *es, const char *fmt) for (i = 0; i < n; i++) { s = l[i]; format_log(es, "session loop: $%u", s->id); - if (active != NULL && s->id == ft->c->session->id) + if (active != NULL && + ft->c != NULL && + s->id == ft->c->session->id) use = active; else use = all; diff --git a/screen-write.c b/screen-write.c index 324ad7d2..da4068c0 100644 --- a/screen-write.c +++ b/screen-write.c @@ -2437,8 +2437,10 @@ screen_write_alternateon(struct screen_write_ctx *ctx, struct grid_cell *gc, screen_write_collect_flush(ctx, 0, __func__); screen_alternate_on(ctx->s, gc, cursor); - if (wp != NULL) + if (wp != NULL) { layout_fix_panes(wp->window, NULL); + server_redraw_window_borders(wp->window); + } screen_write_initctx(ctx, &ttyctx, 1); if (ttyctx.redraw_cb != NULL) @@ -2459,8 +2461,10 @@ screen_write_alternateoff(struct screen_write_ctx *ctx, struct grid_cell *gc, screen_write_collect_flush(ctx, 0, __func__); screen_alternate_off(ctx->s, gc, cursor); - if (wp != NULL) + if (wp != NULL) { layout_fix_panes(wp->window, NULL); + server_redraw_window_borders(wp->window); + } screen_write_initctx(ctx, &ttyctx, 1); if (ttyctx.redraw_cb != NULL)