diff options
author | nicm <nicm> | 2021-10-11 13:27:50 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-10-11 13:27:50 +0000 |
commit | b8581ec80e5339be5e2c08cfec70a77f21ba06b2 (patch) | |
tree | aa0d8f6d2e94066431aefca55f1f8b758a8e108e /screen-redraw.c | |
parent | 759efe1b3327a7244c03ecc7b90e0e3c49712d06 (diff) | |
download | rtmux-b8581ec80e5339be5e2c08cfec70a77f21ba06b2.tar.gz rtmux-b8581ec80e5339be5e2c08cfec70a77f21ba06b2.tar.bz2 rtmux-b8581ec80e5339be5e2c08cfec70a77f21ba06b2.zip |
Make positions hidden by overlays range-based rather than character-based,
from Anindya Mukherjee.
Diffstat (limited to 'screen-redraw.c')
-rw-r--r-- | screen-redraw.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/screen-redraw.c b/screen-redraw.c index 82e390cd..1d736531 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -685,14 +685,17 @@ screen_redraw_draw_borders_cell(struct screen_redraw_ctx *ctx, u_int i, u_int j) 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; struct grid_cell gc; const struct grid_cell *tmp; + struct overlay_ranges r; + u_int cell_type, x = ctx->ox + i, y = ctx->oy + j; + int pane_status = ctx->pane_status, isolates; - if (c->overlay_check != NULL && - !c->overlay_check(c, c->overlay_data, x, y)) - return; + if (c->overlay_check != NULL) { + c->overlay_check(c, c->overlay_data, x, y, 1, &r); + if (r.nx[0] + r.nx[1] == 0) + return; + } cell_type = screen_redraw_check_cell(c, x, y, pane_status, &wp); if (cell_type == CELL_INSIDE) |