Infrastructure for drawing status lines of more than one line in height,

still only one is allowed but this lets tmux draw bigger ones.
This commit is contained in:
nicm
2017-10-16 19:30:53 +00:00
parent a5fd5782f8
commit 2f6935a630
6 changed files with 123 additions and 71 deletions

View File

@ -1201,7 +1201,7 @@ server_client_reset_state(struct client *c)
struct window_pane *wp = w->active, *loop;
struct screen *s = wp->screen;
struct options *oo = c->session->options;
int status, mode, o;
int lines, mode;
if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED))
return;
@ -1209,13 +1209,14 @@ server_client_reset_state(struct client *c)
tty_region_off(&c->tty);
tty_margin_off(&c->tty);
status = options_get_number(oo, "status");
if (!window_pane_visible(wp) || wp->yoff + s->cy >= c->tty.sy - status)
if (status_at_line(c) != 0)
lines = 0;
else
lines = status_line_size(c->session);
if (!window_pane_visible(wp) || wp->yoff + s->cy >= c->tty.sy - lines)
tty_cursor(&c->tty, 0, 0);
else {
o = status && options_get_number(oo, "status-position") == 0;
tty_cursor(&c->tty, wp->xoff + s->cx, o + wp->yoff + s->cy);
}
else
tty_cursor(&c->tty, wp->xoff + s->cx, lines + wp->yoff + s->cy);
/*
* Set mouse mode if requested. To support dragging, always use button