mirror of
https://github.com/tmux/tmux.git
synced 2024-11-16 09:28:51 +00:00
Sync OpenBSD patchset 1020:
Add pane id to each pane in layout description (while still accepting the old form). Based on diff from George Nachman.
This commit is contained in:
parent
6b3988b749
commit
c2176afe9c
@ -105,6 +105,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
|
|||||||
layout = layout_set_next(wl->window);
|
layout = layout_set_next(wl->window);
|
||||||
else
|
else
|
||||||
layout = layout_set_previous(wl->window);
|
layout = layout_set_previous(wl->window);
|
||||||
|
server_redraw_window(wl->window);
|
||||||
ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
|
ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
@ -115,6 +116,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
|
|||||||
layout = layout_set_lookup(args->argv[0]);
|
layout = layout_set_lookup(args->argv[0]);
|
||||||
if (layout != -1) {
|
if (layout != -1) {
|
||||||
layout = layout_set_select(wl->window, layout);
|
layout = layout_set_select(wl->window, layout);
|
||||||
|
server_redraw_window(wl->window);
|
||||||
ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
|
ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
@ -125,6 +127,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
|
|||||||
ctx->error(ctx, "can't set layout: %s", layoutname);
|
ctx->error(ctx, "can't set layout: %s", layoutname);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
server_redraw_window(wl->window);
|
||||||
ctx->info(ctx, "arranging in: %s", layoutname);
|
ctx->info(ctx, "arranging in: %s", layoutname);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
@ -79,8 +79,13 @@ layout_append(struct layout_cell *lc, char *buf, size_t len)
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
tmplen = xsnprintf(tmp, sizeof tmp,
|
if (lc->wp != NULL) {
|
||||||
"%ux%u,%u,%u", lc->sx, lc->sy, lc->xoff, lc->yoff);
|
tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u,%u",
|
||||||
|
lc->sx, lc->sy, lc->xoff, lc->yoff, lc->wp->id);
|
||||||
|
} else {
|
||||||
|
tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u",
|
||||||
|
lc->sx, lc->sy, lc->xoff, lc->yoff);
|
||||||
|
}
|
||||||
if (tmplen > (sizeof tmp) - 1)
|
if (tmplen > (sizeof tmp) - 1)
|
||||||
return (-1);
|
return (-1);
|
||||||
if (strlcat(buf, tmp, len) >= len)
|
if (strlcat(buf, tmp, len) >= len)
|
||||||
@ -202,7 +207,8 @@ layout_construct(struct layout_cell *lcparent, const char **layout)
|
|||||||
|
|
||||||
if (!isdigit((u_char) **layout))
|
if (!isdigit((u_char) **layout))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
if (sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4)
|
if (sscanf(*layout, "%ux%u,%u,%u,%*u", &sx, &sy, &xoff, &yoff) != 5 &&
|
||||||
|
sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|
||||||
while (isdigit((u_char) **layout))
|
while (isdigit((u_char) **layout))
|
||||||
@ -222,6 +228,11 @@ layout_construct(struct layout_cell *lcparent, const char **layout)
|
|||||||
(*layout)++;
|
(*layout)++;
|
||||||
while (isdigit((u_char) **layout))
|
while (isdigit((u_char) **layout))
|
||||||
(*layout)++;
|
(*layout)++;
|
||||||
|
if (**layout == ',') {
|
||||||
|
(*layout)++;
|
||||||
|
while (isdigit((u_char) **layout))
|
||||||
|
(*layout)++;
|
||||||
|
}
|
||||||
|
|
||||||
lc = layout_create_cell(lcparent);
|
lc = layout_create_cell(lcparent);
|
||||||
lc->sx = sx;
|
lc->sx = sx;
|
||||||
|
Loading…
Reference in New Issue
Block a user