mirror of
https://github.com/tmux/tmux.git
synced 2024-10-04 19:18:48 +00:00
Merge branch 'master' of github.com:tmux/tmux
This commit is contained in:
commit
fb02df66cc
@ -554,10 +554,12 @@ mode_tree_draw(struct mode_tree_data *mtd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i != mtd->current) {
|
if (i != mtd->current) {
|
||||||
screen_write_puts(&ctx, &gc0, "%.*s", w, text);
|
screen_write_nputs(&ctx, w, &gc0, "%s", text);
|
||||||
screen_write_clearendofline(&ctx, 8);
|
screen_write_clearendofline(&ctx, 8);
|
||||||
} else
|
} else {
|
||||||
screen_write_puts(&ctx, &gc, "%-*.*s", w, w, text);
|
screen_write_nputs(&ctx, w, &gc, "%s", text);
|
||||||
|
screen_write_clearendofline(&ctx, gc.bg);
|
||||||
|
}
|
||||||
free(text);
|
free(text);
|
||||||
|
|
||||||
if (mti->tagged) {
|
if (mti->tagged) {
|
||||||
|
@ -442,6 +442,28 @@ window_tree_build(void *modedata, u_int sort_type, uint64_t *tag,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
window_tree_draw_label(struct screen_write_ctx *ctx, u_int px, u_int py,
|
||||||
|
u_int sx, u_int sy, const struct grid_cell *gc, const char *label)
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
u_int ox, oy;
|
||||||
|
|
||||||
|
len = strlen(label);
|
||||||
|
if (sx == 0 || sy == 1 || len > sx)
|
||||||
|
return;
|
||||||
|
ox = (sx - len + 1) / 2;
|
||||||
|
oy = (sy + 1) / 2;
|
||||||
|
|
||||||
|
if (ox > 1 && ox + len < sx - 1 && sy >= 3) {
|
||||||
|
screen_write_cursormove(ctx, px + ox - 1, py + oy - 1);
|
||||||
|
screen_write_box(ctx, len + 2, 3);
|
||||||
|
}
|
||||||
|
screen_write_cursormove(ctx, px + ox, py + oy);
|
||||||
|
screen_write_puts(ctx, gc, "%s", label);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
window_tree_draw_session(struct window_tree_modedata *data, struct session *s,
|
window_tree_draw_session(struct window_tree_modedata *data, struct session *s,
|
||||||
struct screen_write_ctx *ctx, u_int sx, u_int sy)
|
struct screen_write_ctx *ctx, u_int sx, u_int sy)
|
||||||
@ -454,7 +476,6 @@ window_tree_draw_session(struct window_tree_modedata *data, struct session *s,
|
|||||||
struct grid_cell gc;
|
struct grid_cell gc;
|
||||||
int colour, active_colour, left, right;
|
int colour, active_colour, left, right;
|
||||||
char *label;
|
char *label;
|
||||||
size_t len;
|
|
||||||
|
|
||||||
total = winlink_count(&s->windows);
|
total = winlink_count(&s->windows);
|
||||||
|
|
||||||
@ -554,10 +575,7 @@ window_tree_draw_session(struct window_tree_modedata *data, struct session *s,
|
|||||||
xasprintf(&label, " %u:%s ", wl->idx, w->name);
|
xasprintf(&label, " %u:%s ", wl->idx, w->name);
|
||||||
if (strlen(label) > width)
|
if (strlen(label) > width)
|
||||||
xasprintf(&label, " %u ", wl->idx);
|
xasprintf(&label, " %u ", wl->idx);
|
||||||
len = strlen(label) / 2;
|
window_tree_draw_label(ctx, offset, 0, width, sy, &gc, label);
|
||||||
screen_write_cursormove(ctx, offset + (each / 2) - len, sy / 2);
|
|
||||||
if (len < width)
|
|
||||||
screen_write_puts(ctx, &gc, "%s", label);
|
|
||||||
free(label);
|
free(label);
|
||||||
|
|
||||||
if (loop != end - 1) {
|
if (loop != end - 1) {
|
||||||
@ -581,7 +599,6 @@ window_tree_draw_window(struct window_tree_modedata *data, struct session *s,
|
|||||||
struct grid_cell gc;
|
struct grid_cell gc;
|
||||||
int colour, active_colour, left, right;
|
int colour, active_colour, left, right;
|
||||||
char *label;
|
char *label;
|
||||||
size_t len;
|
|
||||||
|
|
||||||
total = window_count_panes(w);
|
total = window_count_panes(w);
|
||||||
|
|
||||||
@ -678,10 +695,7 @@ window_tree_draw_window(struct window_tree_modedata *data, struct session *s,
|
|||||||
screen_write_preview(ctx, &wp->base, width, sy);
|
screen_write_preview(ctx, &wp->base, width, sy);
|
||||||
|
|
||||||
xasprintf(&label, " %u ", loop);
|
xasprintf(&label, " %u ", loop);
|
||||||
len = strlen(label) / 2;
|
window_tree_draw_label(ctx, offset, 0, each, sy, &gc, label);
|
||||||
screen_write_cursormove(ctx, offset + (each / 2) - len, sy / 2);
|
|
||||||
if (len < width)
|
|
||||||
screen_write_puts(ctx, &gc, "%s", label);
|
|
||||||
free(label);
|
free(label);
|
||||||
|
|
||||||
if (loop != end - 1) {
|
if (loop != end - 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user