mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-03 16:46:18 +00:00 
			
		
		
		
	Add size to arguments struct too.
This commit is contained in:
		@@ -30,6 +30,9 @@ struct screen_redraw_ctx {
 | 
				
			|||||||
	int		 top;
 | 
						int		 top;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int		 pane_status;
 | 
						int		 pane_status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						u_int		 sx;
 | 
				
			||||||
 | 
						u_int		 sy;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int	screen_redraw_cell_border1(struct window_pane *, u_int, u_int);
 | 
					static int	screen_redraw_cell_border1(struct window_pane *, u_int, u_int);
 | 
				
			||||||
@@ -393,7 +396,7 @@ screen_redraw_screen(struct client *c, int draw_panes, int draw_status,
 | 
				
			|||||||
	if (c->flags & CLIENT_SUSPENDED)
 | 
						if (c->flags & CLIENT_SUSPENDED)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memset (&ctx, 0, sizeof ctx);
 | 
						memset(&ctx, 0, sizeof ctx);
 | 
				
			||||||
	ctx.c = c;
 | 
						ctx.c = c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (c->flags & CLIENT_STATUSOFF)
 | 
						if (c->flags & CLIENT_STATUSOFF)
 | 
				
			||||||
@@ -407,6 +410,9 @@ screen_redraw_screen(struct client *c, int draw_panes, int draw_status,
 | 
				
			|||||||
		ctx.top = 1;
 | 
							ctx.top = 1;
 | 
				
			||||||
	ctx.pane_status = options_get_number(wo, "pane-border-status");
 | 
						ctx.pane_status = options_get_number(wo, "pane-border-status");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ctx.sx = tty->sx;
 | 
				
			||||||
 | 
						ctx.sy = tty->sy - ctx.lines;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (ctx.lines == 0)
 | 
						if (ctx.lines == 0)
 | 
				
			||||||
		draw_status = 0;
 | 
							draw_status = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -501,7 +507,7 @@ screen_redraw_draw_borders(struct screen_redraw_ctx *ctx)
 | 
				
			|||||||
	const char		*tmp;
 | 
						const char		*tmp;
 | 
				
			||||||
	size_t			 msglen = 0;
 | 
						size_t			 msglen = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	small = (tty->sy - ctx->lines + ctx->top > w->sy) || (tty->sx > w->sx);
 | 
						small = (ctx->sy + ctx->top > w->sy) || (ctx->sx > w->sx);
 | 
				
			||||||
	if (small) {
 | 
						if (small) {
 | 
				
			||||||
		flags = w->flags & (WINDOW_FORCEWIDTH|WINDOW_FORCEHEIGHT);
 | 
							flags = w->flags & (WINDOW_FORCEWIDTH|WINDOW_FORCEHEIGHT);
 | 
				
			||||||
		if (flags == (WINDOW_FORCEWIDTH|WINDOW_FORCEHEIGHT))
 | 
							if (flags == (WINDOW_FORCEWIDTH|WINDOW_FORCEHEIGHT))
 | 
				
			||||||
@@ -518,13 +524,12 @@ screen_redraw_draw_borders(struct screen_redraw_ctx *ctx)
 | 
				
			|||||||
		    w->sx, w->sy, tmp);
 | 
							    w->sx, w->sy, tmp);
 | 
				
			||||||
		msglen = strlen(msg);
 | 
							msglen = strlen(msg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (tty->sy - 1 - ctx->lines + ctx->top > w->sy &&
 | 
							if (ctx->sy - 1 + ctx->top > w->sy && ctx->sx >= msglen) {
 | 
				
			||||||
		    tty->sx >= msglen) {
 | 
								msgx = ctx->sx - msglen;
 | 
				
			||||||
			msgx = tty->sx - msglen;
 | 
								msgy = ctx->sy - 1 + ctx->top;
 | 
				
			||||||
			msgy = tty->sy - 1 - ctx->lines + ctx->top;
 | 
							} else if (ctx->sx - w->sx > msglen) {
 | 
				
			||||||
		} else if (tty->sx - w->sx > msglen) {
 | 
								msgx = ctx->sx - msglen;
 | 
				
			||||||
			msgx = tty->sx - msglen;
 | 
								msgy = ctx->sy - 1 + ctx->top;
 | 
				
			||||||
			msgy = tty->sy - 1 - ctx->lines + ctx->top;
 | 
					 | 
				
			||||||
		} else
 | 
							} else
 | 
				
			||||||
			small = 0;
 | 
								small = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -538,8 +543,8 @@ screen_redraw_draw_borders(struct screen_redraw_ctx *ctx)
 | 
				
			|||||||
	memcpy(&m_active_gc, &active_gc, sizeof m_active_gc);
 | 
						memcpy(&m_active_gc, &active_gc, sizeof m_active_gc);
 | 
				
			||||||
	m_active_gc.attr ^= GRID_ATTR_REVERSE;
 | 
						m_active_gc.attr ^= GRID_ATTR_REVERSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (j = 0; j < tty->sy - ctx->lines; j++) {
 | 
						for (j = 0; j < ctx->sy; j++) {
 | 
				
			||||||
		for (i = 0; i < tty->sx; i++) {
 | 
							for (i = 0; i < ctx->sx; i++) {
 | 
				
			||||||
			screen_redraw_draw_borders_cell(ctx, i, j, small,
 | 
								screen_redraw_draw_borders_cell(ctx, i, j, small,
 | 
				
			||||||
			    msgx, msgy, &m_active_gc, &active_gc, &m_other_gc,
 | 
								    msgx, msgy, &m_active_gc, &active_gc, &m_other_gc,
 | 
				
			||||||
			    &other_gc);
 | 
								    &other_gc);
 | 
				
			||||||
@@ -589,7 +594,7 @@ screen_redraw_draw_status(struct screen_redraw_ctx *ctx)
 | 
				
			|||||||
	if (ctx->top)
 | 
						if (ctx->top)
 | 
				
			||||||
		y = 0;
 | 
							y = 0;
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		y = tty->sy - ctx->lines;
 | 
							y = ctx->sy;
 | 
				
			||||||
	for (i = 0; i < ctx->lines; i++)
 | 
						for (i = 0; i < ctx->lines; i++)
 | 
				
			||||||
		tty_draw_line(tty, NULL, &c->status.status, i, 0, y);
 | 
							tty_draw_line(tty, NULL, &c->status.status, i, 0, y);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user