Fix the alignmenttest.

This commit is contained in:
Michael Grant
2026-05-24 11:22:44 +01:00
parent 791f77b879
commit 95c20aef20

19
tty.c
View File

@@ -2051,7 +2051,9 @@ tty_cmd_clearscreen(struct tty *tty, const struct tty_ctx *ctx)
void void
tty_cmd_alignmenttest(struct tty *tty, const struct tty_ctx *ctx) 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)) { if (ctx->flags & (TTY_CTX_WINDOW_BIGGER|TTY_CTX_PANE_OBSCURED)) {
ctx->redraw_cb(ctx); ctx->redraw_cb(ctx);
@@ -2064,12 +2066,23 @@ tty_cmd_alignmenttest(struct tty *tty, const struct tty_ctx *ctx)
tty_region_pane(tty, ctx, 0, ctx->sy - 1); tty_region_pane(tty, ctx, 0, ctx->sy - 1);
tty_margin_off(tty); 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++) { for (j = 0; j < ctx->sy; j++) {
tty_cursor_pane(tty, ctx, 0, j); py = ctx->yoff + j - ctx->woy;
for (i = 0; i < ctx->sx; i++) 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'); tty_putc(tty, 'E');
} }
} }
}
void void
tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx) tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)