diff --git a/cmd-split-window.c b/cmd-split-window.c index 4dd03055..ebe0ffef 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -174,17 +174,21 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) else cwd = ctx->cmdclient->cwd; - size = -1; - if (data->size != -1) - size = data->size; - else if (data->percentage != -1) - size = (w->active->sy * data->percentage) / 100; - hlimit = options_get_number(&s->options, "history-limit"); - type = LAYOUT_TOPBOTTOM; if (data->flag_horizontal) type = LAYOUT_LEFTRIGHT; + size = -1; + if (data->size != -1) + size = data->size; + else if (data->percentage != -1) { + if (type == LAYOUT_TOPBOTTOM) + size = (w->active->sy * data->percentage) / 100; + else + size = (w->active->sx * data->percentage) / 100; + } + hlimit = options_get_number(&s->options, "history-limit"); + shell = options_get_string(&s->options, "default-shell"); if (*shell == '\0' || areshell(shell)) shell = _PATH_BSHELL;