diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-07-28 06:48:44 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-07-28 06:48:44 +0000 |
commit | 2da48644837cd51cfe5a9628140866f06e049e50 (patch) | |
tree | 299073ccb81f85b53b47b60324cd1508f8e2621e /cmd-select-layout.c | |
parent | 309b76fb3255529976ff7ade7e29df8624647312 (diff) | |
download | rtmux-2da48644837cd51cfe5a9628140866f06e049e50.tar.gz rtmux-2da48644837cd51cfe5a9628140866f06e049e50.tar.bz2 rtmux-2da48644837cd51cfe5a9628140866f06e049e50.zip |
If select-layout is not given an argument, repply the last layout used in the
window, if any.
Diffstat (limited to 'cmd-select-layout.c')
-rw-r--r-- | cmd-select-layout.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/cmd-select-layout.c b/cmd-select-layout.c index a2b053ac..3613514e 100644 --- a/cmd-select-layout.c +++ b/cmd-select-layout.c @@ -29,8 +29,8 @@ int cmd_select_layout_exec(struct cmd *, struct cmd_ctx *); const struct cmd_entry cmd_select_layout_entry = { "select-layout", "selectl", - CMD_TARGET_WINDOW_USAGE " layout-name", - CMD_ARG1, 0, + CMD_TARGET_WINDOW_USAGE " [layout-name]", + CMD_ARG01, 0, cmd_select_layout_init, cmd_target_parse, cmd_select_layout_exec, @@ -72,11 +72,15 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx) if ((wl = cmd_find_window(ctx, data->target, NULL)) == NULL) return (-1); - if ((layout = layout_set_lookup(data->arg)) == -1) { - ctx->error(ctx, "unknown or ambiguous layout: %s", data->arg); - return (-1); - } - + if (data->arg == NULL) { + layout = wl->window->lastlayout; + if (layout == -1) + return (0); + } else if ((layout = layout_set_lookup(data->arg)) == -1) { + ctx->error(ctx, "unknown layout or ambiguous: %s", data->arg); + return (-1); + } + layout = layout_set_select(wl->window, layout); ctx->info(ctx, "arranging in: %s", layout_set_name(layout)); |