Restore window_pane_visible for drawing panes and borders, fixes issue

1458 reported by Felix Rosencrantz, problem located by Avi Halachmi.
This commit is contained in:
Nicholas Marriott 2018-09-11 18:34:53 +01:00
parent 84df87011c
commit 3fa538181b

View File

@ -104,6 +104,8 @@ screen_redraw_cell_border(struct client *c, u_int px, u_int py)
/* Check all the panes. */ /* Check all the panes. */
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (!window_pane_visible(wp))
continue;
if ((retval = screen_redraw_cell_border1(wp, px, py)) != -1) if ((retval = screen_redraw_cell_border1(wp, px, py)) != -1)
return (!!retval); return (!!retval);
} }
@ -128,6 +130,9 @@ screen_redraw_check_cell(struct client *c, u_int px, u_int py, int pane_status,
if (pane_status != CELL_STATUS_OFF) { if (pane_status != CELL_STATUS_OFF) {
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (!window_pane_visible(wp))
continue;
if (pane_status == CELL_STATUS_TOP) if (pane_status == CELL_STATUS_TOP)
line = wp->yoff - 1; line = wp->yoff - 1;
else else
@ -140,6 +145,8 @@ screen_redraw_check_cell(struct client *c, u_int px, u_int py, int pane_status,
} }
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (!window_pane_visible(wp))
continue;
*wpp = wp; *wpp = wp;
/* If outside the pane and its border, skip it. */ /* If outside the pane and its border, skip it. */
@ -325,6 +332,8 @@ screen_redraw_draw_pane_status(struct screen_redraw_ctx *ctx)
log_debug("%s: %s @%u", __func__, c->name, w->id); log_debug("%s: %s @%u", __func__, c->name, w->id);
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (!window_pane_visible(wp))
continue;
s = &wp->status_screen; s = &wp->status_screen;
size = wp->status_size; size = wp->status_size;
@ -456,7 +465,7 @@ screen_redraw_pane(struct client *c, struct window_pane *wp)
{ {
struct screen_redraw_ctx ctx; struct screen_redraw_ctx ctx;
if (wp->layout_cell == NULL) if (!window_pane_visible(wp))
return; return;
screen_redraw_set_context(c, &ctx); screen_redraw_set_context(c, &ctx);
@ -545,7 +554,7 @@ screen_redraw_draw_panes(struct screen_redraw_ctx *ctx)
log_debug("%s: %s @%u", __func__, c->name, w->id); log_debug("%s: %s @%u", __func__, c->name, w->id);
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (wp->layout_cell == NULL) if (!window_pane_visible(wp))
continue; continue;
screen_redraw_draw_pane(ctx, wp); screen_redraw_draw_pane(ctx, wp);
if (c->flags & CLIENT_IDENTIFY) if (c->flags & CLIENT_IDENTIFY)