-/* $OpenBSD: cmd-split-window.c,v 1.111 2021/10/07 07:52:13 nicm Exp $ */
+/* $OpenBSD: cmd-split-window.c,v 1.112 2022/03/08 22:14:25 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
struct client *tc = cmdq_get_target_client(item);
struct session *s = target->s;
struct winlink *wl = target->wl;
+ struct window *w = wl->window;
struct window_pane *wp = target->wp, *new_wp;
enum layout_type type;
struct layout_cell *lc;
cmdq_error(item, "percentage %s", errstr);
return (CMD_RETURN_ERROR);
}
- if (type == LAYOUT_TOPBOTTOM)
- size = (wp->sy * percentage) / 100;
- else
- size = (wp->sx * percentage) / 100;
+ if (args_has(args, 'f')) {
+ if (type == LAYOUT_TOPBOTTOM)
+ size = (w->sy * percentage) / 100;
+ else
+ size = (w->sx * percentage) / 100;
+ } else {
+ if (type == LAYOUT_TOPBOTTOM)
+ size = (wp->sy * percentage) / 100;
+ else
+ size = (wp->sx * percentage) / 100;
+ }
} else {
size = args_strtonum(args, 'l', 0, INT_MAX, &cause);
if (cause != NULL) {
free(cause);
return (CMD_RETURN_ERROR);
}
- if (type == LAYOUT_TOPBOTTOM)
- size = (wp->sy * percentage) / 100;
- else
- size = (wp->sx * percentage) / 100;
+ if (args_has(args, 'f')) {
+ if (type == LAYOUT_TOPBOTTOM)
+ size = (w->sy * percentage) / 100;
+ else
+ size = (w->sx * percentage) / 100;
+ } else {
+ if (type == LAYOUT_TOPBOTTOM)
+ size = (wp->sy * percentage) / 100;
+ else
+ size = (wp->sx * percentage) / 100;
+ }
} else
size = -1;