summaryrefslogtreecommitdiffstats
path: root/cmd-select-layout.c
diff options
context:
space:
mode:
authornicm <nicm>2017-11-15 19:59:27 +0000
committernicm <nicm>2017-11-15 19:59:27 +0000
commit3b649d2fcdc8a15c69efbce69ae9e559481d36cb (patch)
treeb8b2e0d03ace30d066b836c53f37aa9eef02a9b5 /cmd-select-layout.c
parent533a5719c5edf53f0d7021d4340af230cc43ac8a (diff)
Add a common function for spreading out cells and use it for the two
even layouts and to add a -E flag to select-layout to spread out cells evenly without changing parent cells.
Diffstat (limited to 'cmd-select-layout.c')
-rw-r--r--cmd-select-layout.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/cmd-select-layout.c b/cmd-select-layout.c
index e32f115d..28737c18 100644
--- a/cmd-select-layout.c
+++ b/cmd-select-layout.c
@@ -33,10 +33,10 @@ const struct cmd_entry cmd_select_layout_entry = {
.name = "select-layout",
.alias = "selectl",
- .args = { "nopt:", 0, 1 },
- .usage = "[-nop] " CMD_TARGET_WINDOW_USAGE " [layout-name]",
+ .args = { "Enopt:", 0, 1 },
+ .usage = "[-Enop] " CMD_TARGET_PANE_USAGE " [layout-name]",
- .target = { 't', CMD_FIND_WINDOW, 0 },
+ .target = { 't', CMD_FIND_PANE, 0 },
.flags = CMD_AFTERHOOK,
.exec = cmd_select_layout_exec
@@ -71,14 +71,14 @@ const struct cmd_entry cmd_previous_layout_entry = {
static enum cmd_retval
cmd_select_layout_exec(struct cmd *self, struct cmdq_item *item)
{
- struct args *args = self->args;
- struct winlink *wl = item->target.wl;
- struct window *w;
- const char *layoutname;
- char *oldlayout;
- int next, previous, layout;
-
- w = wl->window;
+ struct args *args = self->args;
+ struct winlink *wl = item->target.wl;
+ struct window *w = wl->window;
+ struct window_pane *wp = item->target.wp;
+ const char *layoutname;
+ char *oldlayout;
+ int next, previous, layout;
+
server_unzoom_window(w);
next = self->entry == &cmd_next_layout_entry;
@@ -99,6 +99,11 @@ cmd_select_layout_exec(struct cmd *self, struct cmdq_item *item)
goto changed;
}
+ if (args_has(args, 'E')) {
+ layout_spread_out(wp);
+ goto changed;
+ }
+
if (!args_has(args, 'o')) {
if (args->argc == 0)
layout = w->lastlayout;