From 95c20aef209d321b7c354bacb85c94214263a464 Mon Sep 17 00:00:00 2001 From: Michael Grant Date: Sun, 24 May 2026 11:22:44 +0100 Subject: [PATCH] Fix the alignmenttest. --- tty.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/tty.c b/tty.c index 710d15c5..41fd2580 100644 --- a/tty.c +++ b/tty.c @@ -2051,7 +2051,9 @@ tty_cmd_clearscreen(struct tty *tty, const struct tty_ctx *ctx) void tty_cmd_alignmenttest(struct tty *tty, const struct tty_ctx *ctx) { - u_int i, j; + struct visible_ranges *r; + struct visible_range *ri; + u_int i, j, k, px, py, cx; if (ctx->flags & (TTY_CTX_WINDOW_BIGGER|TTY_CTX_PANE_OBSCURED)) { ctx->redraw_cb(ctx); @@ -2064,10 +2066,21 @@ tty_cmd_alignmenttest(struct tty *tty, const struct tty_ctx *ctx) tty_region_pane(tty, ctx, 0, ctx->sy - 1); tty_margin_off(tty); + /* Get tty position from pane position for overlay check. */ + px = ctx->xoff - ctx->wox; + for (j = 0; j < ctx->sy; j++) { - tty_cursor_pane(tty, ctx, 0, j); - for (i = 0; i < ctx->sx; i++) - tty_putc(tty, 'E'); + py = ctx->yoff + j - ctx->woy; + r = tty_check_overlay_range(tty, px, py, ctx->sx); + for (i = 0; i < r->used; i++) { + ri = &r->ranges[i]; + if (ri->nx == 0) + continue; + cx = ri->px - ctx->xoff + ctx->wox; + tty_cursor_pane(tty, ctx, cx, j); + for (k = 0; k < ri->nx; k++) + tty_putc(tty, 'E'); + } } }