mirror of
https://github.com/tmux/tmux.git
synced 2024-12-12 17:38:48 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
e1c283325e
@ -248,6 +248,8 @@ cmd_set_option_exec(struct cmd *self, struct cmdq_item *item)
|
||||
RB_FOREACH(w, windows, &windows)
|
||||
layout_fix_panes(w, w->sx, w->sy);
|
||||
}
|
||||
RB_FOREACH (s, sessions, &sessions)
|
||||
status_update_saved(s);
|
||||
|
||||
/*
|
||||
* Update sizes and redraw. May not always be necessary but do it
|
||||
|
6
grid.c
6
grid.c
@ -292,6 +292,12 @@ grid_expand_line(struct grid *gd, u_int py, u_int sx, u_int bg)
|
||||
if (sx <= gl->cellsize)
|
||||
return;
|
||||
|
||||
if (sx < gd->sx) {
|
||||
sx *= 2;
|
||||
if (sx > gd->sx)
|
||||
sx = gd->sx;
|
||||
}
|
||||
|
||||
gl->celldata = xreallocarray(gl->celldata, sx, sizeof *gl->celldata);
|
||||
for (xx = gl->cellsize; xx < sx; xx++)
|
||||
grid_clear_cell(gd, xx, py, bg);
|
||||
|
2
resize.c
2
resize.c
@ -89,6 +89,8 @@ recalculate_sizes(void)
|
||||
|
||||
s->sx = ssx;
|
||||
s->sy = ssy;
|
||||
|
||||
status_update_saved(s);
|
||||
}
|
||||
|
||||
RB_FOREACH(w, windows, &windows) {
|
||||
|
@ -130,6 +130,8 @@ session_create(const char *name, int argc, char **argv, const char *path,
|
||||
s->options = options_create(global_s_options);
|
||||
s->hooks = hooks_create(global_hooks);
|
||||
|
||||
status_update_saved(s);
|
||||
|
||||
s->tio = NULL;
|
||||
if (tio != NULL) {
|
||||
s->tio = xmalloc(sizeof *s->tio);
|
||||
|
19
status.c
19
status.c
@ -192,17 +192,26 @@ status_timer_start_all(void)
|
||||
status_timer_start(c);
|
||||
}
|
||||
|
||||
/* Update status cache. */
|
||||
void
|
||||
status_update_saved(struct session *s)
|
||||
{
|
||||
if (!options_get_number(s->options, "status"))
|
||||
s->statusat = -1;
|
||||
else if (options_get_number(s->options, "status-position") == 0)
|
||||
s->statusat = 0;
|
||||
else
|
||||
s->statusat = 1;
|
||||
}
|
||||
|
||||
/* Get screen line of status line. -1 means off. */
|
||||
int
|
||||
status_at_line(struct client *c)
|
||||
{
|
||||
struct session *s = c->session;
|
||||
|
||||
if (!options_get_number(s->options, "status"))
|
||||
return (-1);
|
||||
|
||||
if (options_get_number(s->options, "status-position") == 0)
|
||||
return (0);
|
||||
if (s->statusat != 1)
|
||||
return (s->statusat);
|
||||
return (c->tty.sy - 1);
|
||||
}
|
||||
|
||||
|
4
tmux.h
4
tmux.h
@ -547,7 +547,6 @@ struct grid_cell {
|
||||
int fg;
|
||||
int bg;
|
||||
struct utf8_data data;
|
||||
|
||||
};
|
||||
struct grid_cell_entry {
|
||||
u_char flags;
|
||||
@ -938,6 +937,8 @@ struct session {
|
||||
struct winlink_stack lastw;
|
||||
struct winlinks windows;
|
||||
|
||||
int statusat;
|
||||
|
||||
struct hooks *hooks;
|
||||
struct options *options;
|
||||
|
||||
@ -1866,6 +1867,7 @@ void server_unzoom_window(struct window *);
|
||||
/* status.c */
|
||||
void status_timer_start(struct client *);
|
||||
void status_timer_start_all(void);
|
||||
void status_update_saved(struct session *s);
|
||||
int status_at_line(struct client *);
|
||||
struct window *status_get_window_at(struct client *, u_int);
|
||||
int status_redraw(struct client *);
|
||||
|
Loading…
Reference in New Issue
Block a user