mirror of
https://github.com/tmux/tmux.git
synced 2025-01-05 23:38:48 +00:00
Calculate size when trimming RHS correctly.
This commit is contained in:
parent
71d2ab184b
commit
ad71e7f9d2
@ -368,7 +368,7 @@ screen_redraw_draw_pane_status(struct screen_redraw_ctx *ctx)
|
|||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
i = 0;
|
i = 0;
|
||||||
x = xoff - ctx->ox;
|
x = xoff - ctx->ox;
|
||||||
width = size - (xoff + size - ctx->sx);
|
width = size - x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->top)
|
if (ctx->top)
|
||||||
@ -628,7 +628,7 @@ screen_redraw_draw_pane(struct screen_redraw_ctx *ctx, struct window_pane *wp)
|
|||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
i = 0;
|
i = 0;
|
||||||
x = wp->xoff - ctx->ox;
|
x = wp->xoff - ctx->ox;
|
||||||
width = wp->sx - (wp->xoff + wp->sx - ctx->sx);
|
width = ctx->sx - x;
|
||||||
}
|
}
|
||||||
log_debug("%s: %s %%%u line %u,%u at %u,%u, width %u",
|
log_debug("%s: %s %%%u line %u,%u at %u,%u, width %u",
|
||||||
__func__, c->name, wp->id, i, j, x, y, width);
|
__func__, c->name, wp->id, i, j, x, y, width);
|
||||||
@ -674,7 +674,7 @@ screen_redraw_draw_number(struct screen_redraw_ctx *ctx, struct window_pane *wp)
|
|||||||
} else {
|
} else {
|
||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
xoff = wp->xoff - ctx->ox;
|
xoff = wp->xoff - ctx->ox;
|
||||||
sx = wp->sx - (wp->xoff + wp->sx - ctx->sx);
|
sx = wp->sx - xoff;
|
||||||
}
|
}
|
||||||
if (wp->yoff >= ctx->oy && wp->yoff + wp->sy <= ctx->oy + ctx->sy) {
|
if (wp->yoff >= ctx->oy && wp->yoff + wp->sy <= ctx->oy + ctx->sy) {
|
||||||
/* All visible. */
|
/* All visible. */
|
||||||
@ -692,7 +692,7 @@ screen_redraw_draw_number(struct screen_redraw_ctx *ctx, struct window_pane *wp)
|
|||||||
} else {
|
} else {
|
||||||
/* Bottom not visible. */
|
/* Bottom not visible. */
|
||||||
yoff = wp->yoff - ctx->oy;
|
yoff = wp->yoff - ctx->oy;
|
||||||
sy = wp->sy - (wp->yoff + wp->sy - ctx->sy);
|
sy = wp->sy - yoff;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->top)
|
if (ctx->top)
|
||||||
|
21
tty.c
21
tty.c
@ -936,8 +936,13 @@ tty_clamp_line(struct tty *tty, const struct tty_ctx *ctx, u_int px, u_int py,
|
|||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
*i = 0;
|
*i = 0;
|
||||||
*x = (ctx->xoff + px) - ctx->ox;
|
*x = (ctx->xoff + px) - ctx->ox;
|
||||||
*rx = nx - ((ctx->xoff + px) + nx - ctx->sx);
|
*rx = ctx->sx - *x;
|
||||||
}
|
}
|
||||||
|
if (*rx > nx)
|
||||||
|
fatalx("%s: x too big, %u > %u", __func__, *rx, nx);
|
||||||
|
if (nx > *rx)
|
||||||
|
*rx = nx;
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1028,8 +1033,13 @@ tty_clamp_area(struct tty *tty, const struct tty_ctx *ctx, u_int px, u_int py,
|
|||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
*i = 0;
|
*i = 0;
|
||||||
*x = (ctx->xoff + px) - ctx->ox;
|
*x = (ctx->xoff + px) - ctx->ox;
|
||||||
*rx = nx - ((ctx->xoff + px) + nx - ctx->sx);
|
*rx = ctx->sx - *x;
|
||||||
}
|
}
|
||||||
|
if (*rx > nx)
|
||||||
|
fatalx("%s: x too big, %u > %u", __func__, *rx, nx);
|
||||||
|
if (nx > *rx)
|
||||||
|
*rx = nx;
|
||||||
|
|
||||||
if (yoff >= ctx->oy && yoff + ny <= ctx->oy + ctx->sy) {
|
if (yoff >= ctx->oy && yoff + ny <= ctx->oy + ctx->sy) {
|
||||||
/* All visible. */
|
/* All visible. */
|
||||||
*j = 0;
|
*j = 0;
|
||||||
@ -1049,8 +1059,13 @@ tty_clamp_area(struct tty *tty, const struct tty_ctx *ctx, u_int px, u_int py,
|
|||||||
/* Right not visible. */
|
/* Right not visible. */
|
||||||
*j = 0;
|
*j = 0;
|
||||||
*y = (ctx->yoff + py) - ctx->oy;
|
*y = (ctx->yoff + py) - ctx->oy;
|
||||||
*ry = ny - ((ctx->yoff + py) + ny - ctx->sy);
|
*ry = ctx->sy - *y;
|
||||||
}
|
}
|
||||||
|
if (*ry > ny)
|
||||||
|
fatalx("%s: y too big, %u > %u", __func__, *ry, ny);
|
||||||
|
if (ny > *ry)
|
||||||
|
*ry = ny;
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user