mirror of
https://github.com/tmux/tmux.git
synced 2026-05-30 22:26:18 +00:00
Handle ranges for panes which are outside the window to the left.
This commit is contained in:
@@ -1129,7 +1129,7 @@ screen_write_redraw_line(struct screen_write_ctx *ctx, struct tty_ctx *ttyctx,
|
|||||||
struct screen *s = ctx->s;
|
struct screen *s = ctx->s;
|
||||||
struct grid_cell gc, ngc;
|
struct grid_cell gc, ngc;
|
||||||
u_int sx = screen_size_x(s), cx, i, n;
|
u_int sx = screen_size_x(s), cx, i, n;
|
||||||
u_int xoff = wp->xoff, yoff = wp->yoff;
|
int xoff = wp->xoff, yoff = wp->yoff;
|
||||||
struct visible_ranges *r;
|
struct visible_ranges *r;
|
||||||
struct visible_range *ri;
|
struct visible_range *ri;
|
||||||
|
|
||||||
|
|||||||
2
tmux.h
2
tmux.h
@@ -3306,7 +3306,7 @@ void screen_redraw_screen(struct client *);
|
|||||||
void screen_redraw_pane(struct client *, struct window_pane *, int);
|
void screen_redraw_pane(struct client *, struct window_pane *, int);
|
||||||
int screen_redraw_is_visible(struct visible_ranges *, u_int);
|
int screen_redraw_is_visible(struct visible_ranges *, u_int);
|
||||||
struct visible_ranges *screen_redraw_get_visible_ranges(struct window_pane *,
|
struct visible_ranges *screen_redraw_get_visible_ranges(struct window_pane *,
|
||||||
u_int, u_int, u_int, struct visible_ranges *);
|
int, int, u_int, struct visible_ranges *);
|
||||||
|
|
||||||
/* screen.c */
|
/* screen.c */
|
||||||
void screen_init(struct screen *, u_int, u_int, u_int);
|
void screen_init(struct screen *, u_int, u_int, u_int);
|
||||||
|
|||||||
5
tty.c
5
tty.c
@@ -1957,10 +1957,11 @@ tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)
|
|||||||
|
|
||||||
px = ctx->xoff + ctx->ocx - ctx->wox;
|
px = ctx->xoff + ctx->ocx - ctx->wox;
|
||||||
py = ctx->yoff + ctx->ocy - ctx->woy;
|
py = ctx->yoff + ctx->ocy - ctx->woy;
|
||||||
if (!tty_is_visible(tty, ctx, ctx->ocx, ctx->ocy, 1, 1) ||
|
if (!tty_is_visible(tty, ctx, ctx->ocx, ctx->ocy, 1, 1))
|
||||||
(gcp->data.width == 1 && !tty_check_overlay(tty, px, py)))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (gcp->data.width == 1 && !tty_check_overlay(tty, px, py))
|
||||||
|
return;
|
||||||
if (gcp->data.width > 1) { /* could be partially obscured */
|
if (gcp->data.width > 1) { /* could be partially obscured */
|
||||||
r = tty_check_overlay_range(tty, px, py, gcp->data.width);
|
r = tty_check_overlay_range(tty, px, py, gcp->data.width);
|
||||||
for (i = 0; i < r->used; i++)
|
for (i = 0; i < r->used; i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user